#include <stdlib.h>
#include <stdio.h>
#include "mmintrin.h"
#include "immintrin.h"
#include "tmmintrin.h"
#include "emmintrin.h"



static void sbox__0 (__m256i a__1,__m256i a__2,__m256i a__3,__m256i a__4,__m256i a__5,__m256i a__6,__m256i* out__1,__m256i* out__2,__m256i* out__3,__m256i* out__4) {
  __m256i _tmp100_;
  __m256i _tmp102_;
  __m256i _tmp104_;
  __m256i _tmp105_;
  __m256i _tmp108_;
  __m256i _tmp109_;
  __m256i _tmp110_;
  __m256i _tmp113_;
  __m256i _tmp114_;
  __m256i _tmp115_;
  __m256i _tmp116_;
  __m256i _tmp117_;
  __m256i _tmp118_;
  __m256i _tmp119_;
  __m256i _tmp121_;
  __m256i _tmp122_;
  __m256i _tmp123_;
  __m256i _tmp124_;
  __m256i _tmp125_;
  __m256i _tmp126_;
  __m256i _tmp1_;
  __m256i _tmp224_;
  __m256i _tmp226_;
  __m256i _tmp227_;
  __m256i _tmp231_;
  __m256i _tmp233_;
  __m256i _tmp236_;
  __m256i _tmp239_;
  __m256i _tmp240_;
  __m256i _tmp241_;
  __m256i _tmp243_;
  __m256i _tmp244_;
  __m256i _tmp245_;
  __m256i _tmp246_;
  __m256i _tmp247_;
  __m256i _tmp248_;
  __m256i _tmp249_;
  __m256i _tmp250_;
  __m256i _tmp251_;
  __m256i _tmp252_;
  __m256i _tmp351_;
  __m256i _tmp356_;
  __m256i _tmp357_;
  __m256i _tmp359_;
  __m256i _tmp360_;
  __m256i _tmp365_;
  __m256i _tmp366_;
  __m256i _tmp367_;
  __m256i _tmp368_;
  __m256i _tmp369_;
  __m256i _tmp370_;
  __m256i _tmp371_;
  __m256i _tmp372_;
  __m256i _tmp373_;
  __m256i _tmp374_;
  __m256i _tmp375_;
  __m256i _tmp376_;
  __m256i _tmp377_;
  __m256i _tmp378_;
  __m256i _tmp479_;
  __m256i _tmp492_;
  __m256i _tmp493_;
  __m256i _tmp494_;
  __m256i _tmp495_;
  __m256i _tmp496_;
  __m256i _tmp497_;
  __m256i _tmp498_;
  __m256i _tmp499_;
  __m256i _tmp500_;
  __m256i _tmp501_;
  __m256i _tmp502_;
  __m256i _tmp503_;
  __m256i _tmp504_;
  __m256i _tmp65_;
  __m256i _tmp66_;
  __m256i _tmp69_;
  __m256i _tmp70_;
  __m256i _tmp71_;
  __m256i _tmp76_;
  __m256i _tmp97_;
  __m256i _tmp98_;
  __m256i _tmp99_;
  __m256i tmp_1_1_6;
  __m256i tmp_1_2_0;
  __m256i tmp_1_2_12;
  __m256i tmp_1_2_2;
  __m256i tmp_1_2_3;
  __m256i tmp_1_2_5;
  __m256i tmp_1_2_8;
  __m256i tmp_1_3_0;
  __m256i tmp_1_3_1;
  __m256i tmp_1_3_2;
  __m256i tmp_1_3_3;
  __m256i tmp_1_3_4;
  __m256i tmp_1_3_5;
  __m256i tmp_1_3_6;
  __m256i tmp_1_4_0;
  __m256i tmp_1_4_1;
  __m256i tmp_1_4_2;
  __m256i tmp_1_4_3;
  __m256i tmp_1_5_0;
  __m256i tmp_1_5_1;
  __m256i tmp_1_6_0;
  __m256i tmp_2_2_1;
  __m256i tmp_2_3_0;
  __m256i tmp_2_3_1;
  __m256i tmp_2_3_2;
  __m256i tmp_2_3_4;
  __m256i tmp_2_3_5;
  __m256i tmp_2_3_6;
  __m256i tmp_2_4_0;
  __m256i tmp_2_4_1;
  __m256i tmp_2_4_2;
  __m256i tmp_2_4_3;
  __m256i tmp_2_5_0;
  __m256i tmp_2_5_1;
  __m256i tmp_2_6_0;
  __m256i tmp_3_2_2;
  __m256i tmp_3_3_0;
  __m256i tmp_3_3_1;
  __m256i tmp_3_3_2;
  __m256i tmp_3_3_4;
  __m256i tmp_3_3_5;
  __m256i tmp_3_3_6;
  __m256i tmp_3_3_7;
  __m256i tmp_3_4_0;
  __m256i tmp_3_4_1;
  __m256i tmp_3_4_2;
  __m256i tmp_3_4_3;
  __m256i tmp_3_5_0;
  __m256i tmp_3_5_1;
  __m256i tmp_3_6_0;
  __m256i tmp_4_3_1;
  __m256i tmp_4_3_2;
  __m256i tmp_4_3_3;
  __m256i tmp_4_3_6;
  __m256i tmp_4_3_7;
  __m256i tmp_4_4_0;
  __m256i tmp_4_4_1;
  __m256i tmp_4_4_2;
  __m256i tmp_4_4_3;
  __m256i tmp_4_5_0;
  __m256i tmp_4_5_1;
  __m256i tmp_4_6_0;

  _tmp1_ = _mm256_andnot_si256(a__6,_mm256_set1_epi32(-1));
  tmp_1_1_6 = _mm256_or_si256(a__6,_tmp1_);
  _tmp65_ = _mm256_andnot_si256(a__5,_tmp1_);
  _tmp66_ = _mm256_and_si256(a__6,a__5);
  tmp_1_2_0 = _mm256_or_si256(_tmp66_,_tmp65_);
  _tmp69_ = _mm256_andnot_si256(a__5,a__6);
  _tmp70_ = _mm256_and_si256(_tmp1_,a__5);
  tmp_1_2_2 = _mm256_or_si256(_tmp70_,_tmp69_);
  _tmp71_ = _mm256_andnot_si256(a__5,tmp_1_1_6);
  tmp_1_2_3 = _mm256_or_si256(_tmp70_,_tmp71_);
  _tmp76_ = _mm256_and_si256(tmp_1_1_6,a__5);
  tmp_1_2_5 = _mm256_or_si256(_tmp76_,_tmp69_);
  tmp_1_2_8 = _mm256_or_si256(_tmp66_,_tmp69_);
  tmp_1_2_12 = _mm256_or_si256(_tmp76_,_tmp65_);
  _tmp97_ = _mm256_andnot_si256(a__4,tmp_1_2_0);
  _tmp98_ = _mm256_and_si256(_tmp65_,a__4);
  tmp_1_3_0 = _mm256_or_si256(_tmp98_,_tmp97_);
  _tmp99_ = _mm256_andnot_si256(a__4,tmp_1_2_2);
  _tmp100_ = _mm256_and_si256(tmp_1_2_3,a__4);
  tmp_1_3_1 = _mm256_or_si256(_tmp100_,_tmp99_);
  _tmp102_ = _mm256_and_si256(tmp_1_2_5,a__4);
  tmp_1_3_2 = _mm256_or_si256(_tmp102_,_tmp99_);
  _tmp104_ = _mm256_and_si256(_tmp66_,a__4);
  tmp_1_3_3 = _mm256_or_si256(_tmp104_,_tmp99_);
  _tmp105_ = _mm256_andnot_si256(a__4,tmp_1_2_8);
  tmp_1_3_4 = _mm256_or_si256(_tmp100_,_tmp105_);
  _tmp108_ = _mm256_and_si256(_tmp70_,a__4);
  tmp_1_3_5 = _mm256_or_si256(_tmp108_,_tmp97_);
  _tmp109_ = _mm256_andnot_si256(a__4,tmp_1_2_12);
  _tmp110_ = _mm256_and_si256(tmp_1_2_0,a__4);
  tmp_1_3_6 = _mm256_or_si256(_tmp110_,_tmp109_);
  _tmp113_ = _mm256_andnot_si256(a__3,tmp_1_3_0);
  _tmp114_ = _mm256_and_si256(tmp_1_3_1,a__3);
  tmp_1_4_0 = _mm256_or_si256(_tmp114_,_tmp113_);
  _tmp115_ = _mm256_andnot_si256(a__3,tmp_1_3_2);
  _tmp116_ = _mm256_and_si256(tmp_1_3_3,a__3);
  tmp_1_4_1 = _mm256_or_si256(_tmp116_,_tmp115_);
  _tmp117_ = _mm256_andnot_si256(a__3,tmp_1_3_4);
  _tmp118_ = _mm256_and_si256(tmp_1_3_5,a__3);
  tmp_1_4_2 = _mm256_or_si256(_tmp118_,_tmp117_);
  _tmp119_ = _mm256_andnot_si256(a__3,tmp_1_3_6);
  tmp_1_4_3 = _mm256_or_si256(_tmp116_,_tmp119_);
  _tmp121_ = _mm256_andnot_si256(a__2,tmp_1_4_0);
  _tmp122_ = _mm256_and_si256(tmp_1_4_1,a__2);
  tmp_1_5_0 = _mm256_or_si256(_tmp122_,_tmp121_);
  _tmp123_ = _mm256_andnot_si256(a__2,tmp_1_4_2);
  _tmp124_ = _mm256_and_si256(tmp_1_4_3,a__2);
  tmp_1_5_1 = _mm256_or_si256(_tmp124_,_tmp123_);
  _tmp125_ = _mm256_andnot_si256(a__1,tmp_1_5_0);
  _tmp126_ = _mm256_and_si256(tmp_1_5_1,a__1);
  tmp_1_6_0 = _mm256_or_si256(_tmp126_,_tmp125_);
  *out__1 = tmp_1_6_0;
  tmp_2_2_1 = _mm256_or_si256(_tmp66_,_tmp71_);
  _tmp224_ = _mm256_and_si256(tmp_2_2_1,a__4);
  tmp_2_3_0 = _mm256_or_si256(_tmp224_,_tmp109_);
  _tmp226_ = _mm256_and_si256(_tmp69_,a__4);
  tmp_2_3_1 = _mm256_or_si256(_tmp226_,_tmp99_);
  _tmp227_ = _mm256_andnot_si256(a__4,_tmp66_);
  tmp_2_3_2 = _mm256_or_si256(_tmp100_,_tmp227_);
  _tmp231_ = _mm256_andnot_si256(a__4,tmp_2_2_1);
  tmp_2_3_4 = _mm256_or_si256(_tmp98_,_tmp231_);
  _tmp233_ = _mm256_andnot_si256(a__4,tmp_1_2_3);
  tmp_2_3_5 = _mm256_or_si256(_tmp104_,_tmp233_);
  _tmp236_ = _mm256_and_si256(_tmp76_,a__4);
  tmp_2_3_6 = _mm256_or_si256(_tmp236_,_tmp233_);
  _tmp239_ = _mm256_andnot_si256(a__3,tmp_2_3_0);
  _tmp240_ = _mm256_and_si256(tmp_2_3_1,a__3);
  tmp_2_4_0 = _mm256_or_si256(_tmp240_,_tmp239_);
  _tmp241_ = _mm256_andnot_si256(a__3,tmp_2_3_2);
  tmp_2_4_1 = _mm256_or_si256(_tmp118_,_tmp241_);
  _tmp243_ = _mm256_andnot_si256(a__3,tmp_2_3_4);
  _tmp244_ = _mm256_and_si256(tmp_2_3_5,a__3);
  tmp_2_4_2 = _mm256_or_si256(_tmp244_,_tmp243_);
  _tmp245_ = _mm256_andnot_si256(a__3,tmp_2_3_6);
  _tmp246_ = _mm256_and_si256(_tmp224_,a__3);
  tmp_2_4_3 = _mm256_or_si256(_tmp246_,_tmp245_);
  _tmp247_ = _mm256_andnot_si256(a__2,tmp_2_4_0);
  _tmp248_ = _mm256_and_si256(tmp_2_4_1,a__2);
  tmp_2_5_0 = _mm256_or_si256(_tmp248_,_tmp247_);
  _tmp249_ = _mm256_andnot_si256(a__2,tmp_2_4_2);
  _tmp250_ = _mm256_and_si256(tmp_2_4_3,a__2);
  tmp_2_5_1 = _mm256_or_si256(_tmp250_,_tmp249_);
  _tmp251_ = _mm256_andnot_si256(a__1,tmp_2_5_0);
  _tmp252_ = _mm256_and_si256(tmp_2_5_1,a__1);
  tmp_2_6_0 = _mm256_or_si256(_tmp252_,_tmp251_);
  *out__2 = tmp_2_6_0;
  tmp_3_2_2 = _mm256_or_si256(_tmp76_,_tmp71_);
  tmp_3_3_0 = _mm256_or_si256(_tmp226_,_tmp97_);
  _tmp351_ = _mm256_andnot_si256(a__4,tmp_3_2_2);
  tmp_3_3_1 = _mm256_or_si256(_tmp98_,_tmp351_);
  tmp_3_3_2 = _mm256_or_si256(_tmp110_,_tmp351_);
  _tmp356_ = _mm256_and_si256(tmp_1_2_2,a__4);
  _tmp357_ = _mm256_andnot_si256(a__4,_tmp69_);
  tmp_3_3_4 = _mm256_or_si256(_tmp110_,_tmp357_);
  _tmp359_ = _mm256_andnot_si256(a__4,_tmp70_);
  _tmp360_ = _mm256_and_si256(tmp_1_2_12,a__4);
  tmp_3_3_5 = _mm256_or_si256(_tmp360_,_tmp359_);
  tmp_3_3_6 = _mm256_or_si256(_tmp102_,_tmp97_);
  tmp_3_3_7 = _mm256_or_si256(_tmp226_,_tmp233_);
  _tmp365_ = _mm256_andnot_si256(a__3,tmp_3_3_0);
  _tmp366_ = _mm256_and_si256(tmp_3_3_1,a__3);
  tmp_3_4_0 = _mm256_or_si256(_tmp366_,_tmp365_);
  _tmp367_ = _mm256_andnot_si256(a__3,tmp_3_3_2);
  _tmp368_ = _mm256_and_si256(_tmp356_,a__3);
  tmp_3_4_1 = _mm256_or_si256(_tmp368_,_tmp367_);
  _tmp369_ = _mm256_andnot_si256(a__3,tmp_3_3_4);
  _tmp370_ = _mm256_and_si256(tmp_3_3_5,a__3);
  tmp_3_4_2 = _mm256_or_si256(_tmp370_,_tmp369_);
  _tmp371_ = _mm256_andnot_si256(a__3,tmp_3_3_6);
  _tmp372_ = _mm256_and_si256(tmp_3_3_7,a__3);
  tmp_3_4_3 = _mm256_or_si256(_tmp372_,_tmp371_);
  _tmp373_ = _mm256_andnot_si256(a__2,tmp_3_4_0);
  _tmp374_ = _mm256_and_si256(tmp_3_4_1,a__2);
  tmp_3_5_0 = _mm256_or_si256(_tmp374_,_tmp373_);
  _tmp375_ = _mm256_andnot_si256(a__2,tmp_3_4_2);
  _tmp376_ = _mm256_and_si256(tmp_3_4_3,a__2);
  tmp_3_5_1 = _mm256_or_si256(_tmp376_,_tmp375_);
  _tmp377_ = _mm256_andnot_si256(a__1,tmp_3_5_0);
  _tmp378_ = _mm256_and_si256(tmp_3_5_1,a__1);
  tmp_3_6_0 = _mm256_or_si256(_tmp378_,_tmp377_);
  *out__3 = tmp_3_6_0;
  tmp_4_3_1 = _mm256_or_si256(_tmp224_,_tmp359_);
  _tmp479_ = _mm256_andnot_si256(a__4,_tmp65_);
  tmp_4_3_2 = _mm256_or_si256(_tmp104_,_tmp479_);
  tmp_4_3_3 = _mm256_or_si256(_tmp356_,_tmp351_);
  tmp_4_3_6 = _mm256_or_si256(_tmp100_,_tmp231_);
  tmp_4_3_7 = _mm256_or_si256(_tmp110_,_tmp479_);
  _tmp492_ = _mm256_and_si256(tmp_4_3_1,a__3);
  tmp_4_4_0 = _mm256_or_si256(_tmp492_,_tmp241_);
  _tmp493_ = _mm256_andnot_si256(a__3,tmp_4_3_2);
  _tmp494_ = _mm256_and_si256(tmp_4_3_3,a__3);
  tmp_4_4_1 = _mm256_or_si256(_tmp494_,_tmp493_);
  _tmp495_ = _mm256_andnot_si256(a__3,_tmp99_);
  _tmp496_ = _mm256_and_si256(tmp_3_3_6,a__3);
  tmp_4_4_2 = _mm256_or_si256(_tmp496_,_tmp495_);
  _tmp497_ = _mm256_andnot_si256(a__3,tmp_4_3_6);
  _tmp498_ = _mm256_and_si256(tmp_4_3_7,a__3);
  tmp_4_4_3 = _mm256_or_si256(_tmp498_,_tmp497_);
  _tmp499_ = _mm256_andnot_si256(a__2,tmp_4_4_0);
  _tmp500_ = _mm256_and_si256(tmp_4_4_1,a__2);
  tmp_4_5_0 = _mm256_or_si256(_tmp500_,_tmp499_);
  _tmp501_ = _mm256_andnot_si256(a__2,tmp_4_4_2);
  _tmp502_ = _mm256_and_si256(tmp_4_4_3,a__2);
  tmp_4_5_1 = _mm256_or_si256(_tmp502_,_tmp501_);
  _tmp503_ = _mm256_andnot_si256(a__1,tmp_4_5_0);
  _tmp504_ = _mm256_and_si256(tmp_4_5_1,a__1);
  tmp_4_6_0 = _mm256_or_si256(_tmp504_,_tmp503_);
  *out__4 = tmp_4_6_0;
}


static void sbox__1 (__m256i a__1,__m256i a__2,__m256i a__3,__m256i a__4,__m256i a__5,__m256i a__6,__m256i* out__1,__m256i* out__2,__m256i* out__3,__m256i* out__4) {
  __m256i _tmp1000_;
  __m256i _tmp1001_;
  __m256i _tmp1002_;
  __m256i _tmp1003_;
  __m256i _tmp1004_;
  __m256i _tmp1005_;
  __m256i _tmp1006_;
  __m256i _tmp1007_;
  __m256i _tmp1008_;
  __m256i _tmp505_;
  __m256i _tmp569_;
  __m256i _tmp570_;
  __m256i _tmp572_;
  __m256i _tmp573_;
  __m256i _tmp577_;
  __m256i _tmp580_;
  __m256i _tmp601_;
  __m256i _tmp602_;
  __m256i _tmp603_;
  __m256i _tmp604_;
  __m256i _tmp605_;
  __m256i _tmp606_;
  __m256i _tmp608_;
  __m256i _tmp609_;
  __m256i _tmp612_;
  __m256i _tmp614_;
  __m256i _tmp615_;
  __m256i _tmp616_;
  __m256i _tmp617_;
  __m256i _tmp618_;
  __m256i _tmp619_;
  __m256i _tmp620_;
  __m256i _tmp621_;
  __m256i _tmp622_;
  __m256i _tmp623_;
  __m256i _tmp624_;
  __m256i _tmp625_;
  __m256i _tmp626_;
  __m256i _tmp627_;
  __m256i _tmp628_;
  __m256i _tmp629_;
  __m256i _tmp630_;
  __m256i _tmp732_;
  __m256i _tmp737_;
  __m256i _tmp738_;
  __m256i _tmp740_;
  __m256i _tmp741_;
  __m256i _tmp743_;
  __m256i _tmp744_;
  __m256i _tmp745_;
  __m256i _tmp746_;
  __m256i _tmp747_;
  __m256i _tmp748_;
  __m256i _tmp749_;
  __m256i _tmp750_;
  __m256i _tmp751_;
  __m256i _tmp752_;
  __m256i _tmp753_;
  __m256i _tmp754_;
  __m256i _tmp755_;
  __m256i _tmp756_;
  __m256i _tmp855_;
  __m256i _tmp857_;
  __m256i _tmp859_;
  __m256i _tmp862_;
  __m256i _tmp863_;
  __m256i _tmp864_;
  __m256i _tmp865_;
  __m256i _tmp870_;
  __m256i _tmp871_;
  __m256i _tmp872_;
  __m256i _tmp873_;
  __m256i _tmp874_;
  __m256i _tmp875_;
  __m256i _tmp876_;
  __m256i _tmp877_;
  __m256i _tmp878_;
  __m256i _tmp879_;
  __m256i _tmp880_;
  __m256i _tmp881_;
  __m256i _tmp882_;
  __m256i _tmp983_;
  __m256i _tmp986_;
  __m256i _tmp988_;
  __m256i _tmp992_;
  __m256i _tmp993_;
  __m256i _tmp995_;
  __m256i _tmp996_;
  __m256i _tmp997_;
  __m256i _tmp998_;
  __m256i _tmp999_;
  __m256i tmp_1_1_8;
  __m256i tmp_1_2_0;
  __m256i tmp_1_2_1;
  __m256i tmp_1_2_2;
  __m256i tmp_1_2_3;
  __m256i tmp_1_2_8;
  __m256i tmp_1_3_0;
  __m256i tmp_1_3_1;
  __m256i tmp_1_3_2;
  __m256i tmp_1_3_3;
  __m256i tmp_1_3_4;
  __m256i tmp_1_3_5;
  __m256i tmp_1_3_6;
  __m256i tmp_1_3_7;
  __m256i tmp_1_4_0;
  __m256i tmp_1_4_1;
  __m256i tmp_1_4_2;
  __m256i tmp_1_4_3;
  __m256i tmp_1_5_0;
  __m256i tmp_1_5_1;
  __m256i tmp_1_6_0;
  __m256i tmp_2_2_13;
  __m256i tmp_2_3_0;
  __m256i tmp_2_3_2;
  __m256i tmp_2_3_3;
  __m256i tmp_2_3_4;
  __m256i tmp_2_3_5;
  __m256i tmp_2_3_6;
  __m256i tmp_2_3_7;
  __m256i tmp_2_4_0;
  __m256i tmp_2_4_1;
  __m256i tmp_2_4_2;
  __m256i tmp_2_4_3;
  __m256i tmp_2_5_0;
  __m256i tmp_2_5_1;
  __m256i tmp_2_6_0;
  __m256i tmp_3_2_10;
  __m256i tmp_3_2_9;
  __m256i tmp_3_3_1;
  __m256i tmp_3_3_2;
  __m256i tmp_3_3_3;
  __m256i tmp_3_3_4;
  __m256i tmp_3_3_5;
  __m256i tmp_3_3_6;
  __m256i tmp_3_4_0;
  __m256i tmp_3_4_1;
  __m256i tmp_3_4_2;
  __m256i tmp_3_4_3;
  __m256i tmp_3_5_0;
  __m256i tmp_3_5_1;
  __m256i tmp_3_6_0;
  __m256i tmp_4_2_9;
  __m256i tmp_4_3_0;
  __m256i tmp_4_3_2;
  __m256i tmp_4_3_3;
  __m256i tmp_4_3_4;
  __m256i tmp_4_3_5;
  __m256i tmp_4_3_6;
  __m256i tmp_4_3_7;
  __m256i tmp_4_4_0;
  __m256i tmp_4_4_1;
  __m256i tmp_4_4_2;
  __m256i tmp_4_4_3;
  __m256i tmp_4_5_0;
  __m256i tmp_4_5_1;
  __m256i tmp_4_6_0;

  _tmp505_ = _mm256_andnot_si256(a__6,_mm256_set1_epi32(-1));
  tmp_1_1_8 = _mm256_or_si256(a__6,_tmp505_);
  _tmp569_ = _mm256_andnot_si256(a__5,_tmp505_);
  _tmp570_ = _mm256_and_si256(a__6,a__5);
  tmp_1_2_0 = _mm256_or_si256(_tmp570_,_tmp569_);
  _tmp572_ = _mm256_and_si256(_tmp505_,a__5);
  tmp_1_2_1 = _mm256_or_si256(_tmp572_,_tmp569_);
  _tmp573_ = _mm256_andnot_si256(a__5,a__6);
  tmp_1_2_2 = _mm256_or_si256(_tmp572_,_tmp573_);
  tmp_1_2_3 = _mm256_or_si256(_tmp570_,_tmp573_);
  _tmp577_ = _mm256_andnot_si256(a__5,tmp_1_1_8);
  _tmp580_ = _mm256_and_si256(tmp_1_1_8,a__5);
  tmp_1_2_8 = _mm256_or_si256(_tmp580_,_tmp573_);
  _tmp601_ = _mm256_andnot_si256(a__4,tmp_1_2_0);
  _tmp602_ = _mm256_and_si256(tmp_1_2_1,a__4);
  tmp_1_3_0 = _mm256_or_si256(_tmp602_,_tmp601_);
  _tmp603_ = _mm256_andnot_si256(a__4,tmp_1_2_2);
  _tmp604_ = _mm256_and_si256(tmp_1_2_3,a__4);
  tmp_1_3_1 = _mm256_or_si256(_tmp604_,_tmp603_);
  _tmp605_ = _mm256_andnot_si256(a__4,_tmp577_);
  _tmp606_ = _mm256_and_si256(_tmp580_,a__4);
  tmp_1_3_2 = _mm256_or_si256(_tmp606_,_tmp605_);
  _tmp608_ = _mm256_and_si256(tmp_1_2_2,a__4);
  tmp_1_3_3 = _mm256_or_si256(_tmp608_,_tmp601_);
  _tmp609_ = _mm256_andnot_si256(a__4,tmp_1_2_8);
  tmp_1_3_4 = _mm256_or_si256(_tmp608_,_tmp609_);
  _tmp612_ = _mm256_and_si256(_tmp569_,a__4);
  tmp_1_3_5 = _mm256_or_si256(_tmp612_,_tmp601_);
  _tmp614_ = _mm256_and_si256(tmp_1_2_0,a__4);
  tmp_1_3_6 = _mm256_or_si256(_tmp614_,_tmp603_);
  _tmp615_ = _mm256_andnot_si256(a__4,_tmp569_);
  _tmp616_ = _mm256_and_si256(tmp_1_2_8,a__4);
  tmp_1_3_7 = _mm256_or_si256(_tmp616_,_tmp615_);
  _tmp617_ = _mm256_andnot_si256(a__3,tmp_1_3_0);
  _tmp618_ = _mm256_and_si256(tmp_1_3_1,a__3);
  tmp_1_4_0 = _mm256_or_si256(_tmp618_,_tmp617_);
  _tmp619_ = _mm256_andnot_si256(a__3,tmp_1_3_2);
  _tmp620_ = _mm256_and_si256(tmp_1_3_3,a__3);
  tmp_1_4_1 = _mm256_or_si256(_tmp620_,_tmp619_);
  _tmp621_ = _mm256_andnot_si256(a__3,tmp_1_3_4);
  _tmp622_ = _mm256_and_si256(tmp_1_3_5,a__3);
  tmp_1_4_2 = _mm256_or_si256(_tmp622_,_tmp621_);
  _tmp623_ = _mm256_andnot_si256(a__3,tmp_1_3_6);
  _tmp624_ = _mm256_and_si256(tmp_1_3_7,a__3);
  tmp_1_4_3 = _mm256_or_si256(_tmp624_,_tmp623_);
  _tmp625_ = _mm256_andnot_si256(a__2,tmp_1_4_0);
  _tmp626_ = _mm256_and_si256(tmp_1_4_1,a__2);
  tmp_1_5_0 = _mm256_or_si256(_tmp626_,_tmp625_);
  _tmp627_ = _mm256_andnot_si256(a__2,tmp_1_4_2);
  _tmp628_ = _mm256_and_si256(tmp_1_4_3,a__2);
  tmp_1_5_1 = _mm256_or_si256(_tmp628_,_tmp627_);
  _tmp629_ = _mm256_andnot_si256(a__1,tmp_1_5_0);
  _tmp630_ = _mm256_and_si256(tmp_1_5_1,a__1);
  tmp_1_6_0 = _mm256_or_si256(_tmp630_,_tmp629_);
  *out__1 = tmp_1_6_0;
  tmp_2_2_13 = _mm256_or_si256(_tmp580_,_tmp577_);
  tmp_2_3_0 = _mm256_or_si256(_tmp616_,_tmp601_);
  _tmp732_ = _mm256_and_si256(_tmp572_,a__4);
  tmp_2_3_2 = _mm256_or_si256(_tmp732_,_tmp603_);
  tmp_2_3_3 = _mm256_or_si256(_tmp614_,_tmp605_);
  tmp_2_3_4 = _mm256_or_si256(_tmp612_,_tmp603_);
  _tmp737_ = _mm256_andnot_si256(a__4,_tmp580_);
  _tmp738_ = _mm256_and_si256(_tmp577_,a__4);
  tmp_2_3_5 = _mm256_or_si256(_tmp738_,_tmp737_);
  _tmp740_ = _mm256_and_si256(tmp_2_2_13,a__4);
  tmp_2_3_6 = _mm256_or_si256(_tmp740_,_tmp601_);
  _tmp741_ = _mm256_andnot_si256(a__4,_tmp570_);
  tmp_2_3_7 = _mm256_or_si256(_tmp608_,_tmp741_);
  _tmp743_ = _mm256_andnot_si256(a__3,tmp_2_3_0);
  _tmp744_ = _mm256_and_si256(tmp_1_3_2,a__3);
  tmp_2_4_0 = _mm256_or_si256(_tmp744_,_tmp743_);
  _tmp745_ = _mm256_andnot_si256(a__3,tmp_2_3_2);
  _tmp746_ = _mm256_and_si256(tmp_2_3_3,a__3);
  tmp_2_4_1 = _mm256_or_si256(_tmp746_,_tmp745_);
  _tmp747_ = _mm256_andnot_si256(a__3,tmp_2_3_4);
  _tmp748_ = _mm256_and_si256(tmp_2_3_5,a__3);
  tmp_2_4_2 = _mm256_or_si256(_tmp748_,_tmp747_);
  _tmp749_ = _mm256_andnot_si256(a__3,tmp_2_3_6);
  _tmp750_ = _mm256_and_si256(tmp_2_3_7,a__3);
  tmp_2_4_3 = _mm256_or_si256(_tmp750_,_tmp749_);
  _tmp751_ = _mm256_andnot_si256(a__2,tmp_2_4_0);
  _tmp752_ = _mm256_and_si256(tmp_2_4_1,a__2);
  tmp_2_5_0 = _mm256_or_si256(_tmp752_,_tmp751_);
  _tmp753_ = _mm256_andnot_si256(a__2,tmp_2_4_2);
  _tmp754_ = _mm256_and_si256(tmp_2_4_3,a__2);
  tmp_2_5_1 = _mm256_or_si256(_tmp754_,_tmp753_);
  _tmp755_ = _mm256_andnot_si256(a__1,tmp_2_5_0);
  _tmp756_ = _mm256_and_si256(tmp_2_5_1,a__1);
  tmp_2_6_0 = _mm256_or_si256(_tmp756_,_tmp755_);
  *out__2 = tmp_2_6_0;
  tmp_3_2_9 = _mm256_or_si256(_tmp572_,_tmp577_);
  tmp_3_2_10 = _mm256_or_si256(_tmp570_,_tmp577_);
  _tmp855_ = _mm256_andnot_si256(a__4,tmp_2_2_13);
  tmp_3_3_1 = _mm256_or_si256(_tmp614_,_tmp855_);
  _tmp857_ = _mm256_andnot_si256(a__4,_tmp572_);
  tmp_3_3_2 = _mm256_or_si256(_tmp614_,_tmp857_);
  _tmp859_ = _mm256_andnot_si256(a__4,_tmp573_);
  tmp_3_3_3 = _mm256_or_si256(_tmp608_,_tmp859_);
  _tmp862_ = _mm256_and_si256(tmp_3_2_9,a__4);
  tmp_3_3_4 = _mm256_or_si256(_tmp862_,_tmp857_);
  _tmp863_ = _mm256_andnot_si256(a__4,tmp_3_2_10);
  _tmp864_ = _mm256_and_si256(_tmp570_,a__4);
  tmp_3_3_5 = _mm256_or_si256(_tmp864_,_tmp863_);
  _tmp865_ = _mm256_andnot_si256(a__4,tmp_1_2_3);
  tmp_3_3_6 = _mm256_or_si256(_tmp608_,_tmp865_);
  _tmp870_ = _mm256_and_si256(tmp_3_3_1,a__3);
  tmp_3_4_0 = _mm256_or_si256(_tmp870_,_tmp619_);
  _tmp871_ = _mm256_andnot_si256(a__3,tmp_3_3_2);
  _tmp872_ = _mm256_and_si256(tmp_3_3_3,a__3);
  tmp_3_4_1 = _mm256_or_si256(_tmp872_,_tmp871_);
  _tmp873_ = _mm256_andnot_si256(a__3,tmp_3_3_4);
  _tmp874_ = _mm256_and_si256(tmp_3_3_5,a__3);
  tmp_3_4_2 = _mm256_or_si256(_tmp874_,_tmp873_);
  _tmp875_ = _mm256_andnot_si256(a__3,tmp_3_3_6);
  _tmp876_ = _mm256_and_si256(tmp_3_3_4,a__3);
  tmp_3_4_3 = _mm256_or_si256(_tmp876_,_tmp875_);
  _tmp877_ = _mm256_andnot_si256(a__2,tmp_3_4_0);
  _tmp878_ = _mm256_and_si256(tmp_3_4_1,a__2);
  tmp_3_5_0 = _mm256_or_si256(_tmp878_,_tmp877_);
  _tmp879_ = _mm256_andnot_si256(a__2,tmp_3_4_2);
  _tmp880_ = _mm256_and_si256(tmp_3_4_3,a__2);
  tmp_3_5_1 = _mm256_or_si256(_tmp880_,_tmp879_);
  _tmp881_ = _mm256_andnot_si256(a__1,tmp_3_5_0);
  _tmp882_ = _mm256_and_si256(tmp_3_5_1,a__1);
  tmp_3_6_0 = _mm256_or_si256(_tmp882_,_tmp881_);
  *out__3 = tmp_3_6_0;
  tmp_4_2_9 = _mm256_or_si256(_tmp580_,_tmp569_);
  tmp_4_3_0 = _mm256_or_si256(_tmp864_,_tmp855_);
  _tmp983_ = _mm256_andnot_si256(a__4,tmp_1_2_1);
  tmp_4_3_2 = _mm256_or_si256(_tmp608_,_tmp983_);
  _tmp986_ = _mm256_and_si256(tmp_3_2_10,a__4);
  tmp_4_3_3 = _mm256_or_si256(_tmp986_,_tmp741_);
  _tmp988_ = _mm256_and_si256(tmp_4_2_9,a__4);
  tmp_4_3_4 = _mm256_or_si256(_tmp988_,_tmp859_);
  tmp_4_3_5 = _mm256_or_si256(_tmp602_,_tmp865_);
  _tmp992_ = _mm256_and_si256(_tmp573_,a__4);
  tmp_4_3_6 = _mm256_or_si256(_tmp992_,_tmp605_);
  _tmp993_ = _mm256_andnot_si256(a__4,tmp_4_2_9);
  tmp_4_3_7 = _mm256_or_si256(_tmp606_,_tmp993_);
  _tmp995_ = _mm256_andnot_si256(a__3,tmp_4_3_0);
  _tmp996_ = _mm256_and_si256(tmp_2_3_4,a__3);
  tmp_4_4_0 = _mm256_or_si256(_tmp996_,_tmp995_);
  _tmp997_ = _mm256_andnot_si256(a__3,tmp_4_3_2);
  _tmp998_ = _mm256_and_si256(tmp_4_3_3,a__3);
  tmp_4_4_1 = _mm256_or_si256(_tmp998_,_tmp997_);
  _tmp999_ = _mm256_andnot_si256(a__3,tmp_4_3_4);
  _tmp1000_ = _mm256_and_si256(tmp_4_3_5,a__3);
  tmp_4_4_2 = _mm256_or_si256(_tmp1000_,_tmp999_);
  _tmp1001_ = _mm256_andnot_si256(a__3,tmp_4_3_6);
  _tmp1002_ = _mm256_and_si256(tmp_4_3_7,a__3);
  tmp_4_4_3 = _mm256_or_si256(_tmp1002_,_tmp1001_);
  _tmp1003_ = _mm256_andnot_si256(a__2,tmp_4_4_0);
  _tmp1004_ = _mm256_and_si256(tmp_4_4_1,a__2);
  tmp_4_5_0 = _mm256_or_si256(_tmp1004_,_tmp1003_);
  _tmp1005_ = _mm256_andnot_si256(a__2,tmp_4_4_2);
  _tmp1006_ = _mm256_and_si256(tmp_4_4_3,a__2);
  tmp_4_5_1 = _mm256_or_si256(_tmp1006_,_tmp1005_);
  _tmp1007_ = _mm256_andnot_si256(a__1,tmp_4_5_0);
  _tmp1008_ = _mm256_and_si256(tmp_4_5_1,a__1);
  tmp_4_6_0 = _mm256_or_si256(_tmp1008_,_tmp1007_);
  *out__4 = tmp_4_6_0;
}


static void sbox__2 (__m256i a__1,__m256i a__2,__m256i a__3,__m256i a__4,__m256i a__5,__m256i a__6,__m256i* out__1,__m256i* out__2,__m256i* out__3,__m256i* out__4) {
  __m256i _tmp1009_;
  __m256i _tmp1073_;
  __m256i _tmp1075_;
  __m256i _tmp1076_;
  __m256i _tmp1080_;
  __m256i _tmp1087_;
  __m256i _tmp1088_;
  __m256i _tmp1105_;
  __m256i _tmp1106_;
  __m256i _tmp1108_;
  __m256i _tmp1109_;
  __m256i _tmp1111_;
  __m256i _tmp1112_;
  __m256i _tmp1113_;
  __m256i _tmp1115_;
  __m256i _tmp1116_;
  __m256i _tmp1119_;
  __m256i _tmp1121_;
  __m256i _tmp1122_;
  __m256i _tmp1123_;
  __m256i _tmp1124_;
  __m256i _tmp1125_;
  __m256i _tmp1126_;
  __m256i _tmp1128_;
  __m256i _tmp1129_;
  __m256i _tmp1130_;
  __m256i _tmp1131_;
  __m256i _tmp1132_;
  __m256i _tmp1133_;
  __m256i _tmp1134_;
  __m256i _tmp1231_;
  __m256i _tmp1232_;
  __m256i _tmp1234_;
  __m256i _tmp1235_;
  __m256i _tmp1236_;
  __m256i _tmp1239_;
  __m256i _tmp1240_;
  __m256i _tmp1242_;
  __m256i _tmp1247_;
  __m256i _tmp1248_;
  __m256i _tmp1249_;
  __m256i _tmp1250_;
  __m256i _tmp1251_;
  __m256i _tmp1252_;
  __m256i _tmp1253_;
  __m256i _tmp1254_;
  __m256i _tmp1255_;
  __m256i _tmp1256_;
  __m256i _tmp1257_;
  __m256i _tmp1258_;
  __m256i _tmp1259_;
  __m256i _tmp1260_;
  __m256i _tmp1359_;
  __m256i _tmp1360_;
  __m256i _tmp1361_;
  __m256i _tmp1362_;
  __m256i _tmp1373_;
  __m256i _tmp1374_;
  __m256i _tmp1375_;
  __m256i _tmp1376_;
  __m256i _tmp1377_;
  __m256i _tmp1379_;
  __m256i _tmp1380_;
  __m256i _tmp1381_;
  __m256i _tmp1382_;
  __m256i _tmp1383_;
  __m256i _tmp1384_;
  __m256i _tmp1385_;
  __m256i _tmp1386_;
  __m256i _tmp1486_;
  __m256i _tmp1490_;
  __m256i _tmp1499_;
  __m256i _tmp1500_;
  __m256i _tmp1501_;
  __m256i _tmp1502_;
  __m256i _tmp1503_;
  __m256i _tmp1504_;
  __m256i _tmp1505_;
  __m256i _tmp1506_;
  __m256i _tmp1507_;
  __m256i _tmp1508_;
  __m256i _tmp1509_;
  __m256i _tmp1510_;
  __m256i _tmp1511_;
  __m256i _tmp1512_;
  __m256i tmp_1_1_0;
  __m256i tmp_1_2_1;
  __m256i tmp_1_2_3;
  __m256i tmp_1_2_6;
  __m256i tmp_1_2_7;
  __m256i tmp_1_3_0;
  __m256i tmp_1_3_2;
  __m256i tmp_1_3_3;
  __m256i tmp_1_3_4;
  __m256i tmp_1_3_5;
  __m256i tmp_1_3_7;
  __m256i tmp_1_4_0;
  __m256i tmp_1_4_1;
  __m256i tmp_1_4_2;
  __m256i tmp_1_4_3;
  __m256i tmp_1_5_0;
  __m256i tmp_1_5_1;
  __m256i tmp_1_6_0;
  __m256i tmp_2_2_0;
  __m256i tmp_2_2_3;
  __m256i tmp_2_2_5;
  __m256i tmp_2_2_8;
  __m256i tmp_2_3_0;
  __m256i tmp_2_3_1;
  __m256i tmp_2_3_2;
  __m256i tmp_2_3_3;
  __m256i tmp_2_3_4;
  __m256i tmp_2_3_5;
  __m256i tmp_2_3_6;
  __m256i tmp_2_3_7;
  __m256i tmp_2_4_0;
  __m256i tmp_2_4_1;
  __m256i tmp_2_4_2;
  __m256i tmp_2_4_3;
  __m256i tmp_2_5_0;
  __m256i tmp_2_5_1;
  __m256i tmp_2_6_0;
  __m256i tmp_3_3_0;
  __m256i tmp_3_3_1;
  __m256i tmp_3_3_2;
  __m256i tmp_3_3_3;
  __m256i tmp_3_3_6;
  __m256i tmp_3_3_7;
  __m256i tmp_3_4_0;
  __m256i tmp_3_4_1;
  __m256i tmp_3_4_2;
  __m256i tmp_3_4_3;
  __m256i tmp_3_5_0;
  __m256i tmp_3_5_1;
  __m256i tmp_3_6_0;
  __m256i tmp_4_3_0;
  __m256i tmp_4_3_1;
  __m256i tmp_4_3_2;
  __m256i tmp_4_3_3;
  __m256i tmp_4_3_4;
  __m256i tmp_4_3_6;
  __m256i tmp_4_3_7;
  __m256i tmp_4_4_0;
  __m256i tmp_4_4_1;
  __m256i tmp_4_4_2;
  __m256i tmp_4_4_3;
  __m256i tmp_4_5_0;
  __m256i tmp_4_5_1;
  __m256i tmp_4_6_0;

  _tmp1009_ = _mm256_andnot_si256(a__6,_mm256_set1_epi32(-1));
  tmp_1_1_0 = _mm256_or_si256(a__6,_tmp1009_);
  _tmp1073_ = _mm256_andnot_si256(a__5,tmp_1_1_0);
  _tmp1075_ = _mm256_andnot_si256(a__5,_tmp1009_);
  _tmp1076_ = _mm256_and_si256(tmp_1_1_0,a__5);
  tmp_1_2_1 = _mm256_or_si256(_tmp1076_,_tmp1075_);
  _tmp1080_ = _mm256_and_si256(a__6,a__5);
  tmp_1_2_3 = _mm256_or_si256(_tmp1080_,_tmp1075_);
  tmp_1_2_6 = _mm256_or_si256(_tmp1080_,_tmp1073_);
  _tmp1087_ = _mm256_andnot_si256(a__5,a__6);
  _tmp1088_ = _mm256_and_si256(_tmp1009_,a__5);
  tmp_1_2_7 = _mm256_or_si256(_tmp1088_,_tmp1087_);
  _tmp1105_ = _mm256_andnot_si256(a__4,_tmp1073_);
  _tmp1106_ = _mm256_and_si256(tmp_1_2_1,a__4);
  tmp_1_3_0 = _mm256_or_si256(_tmp1106_,_tmp1105_);
  _tmp1108_ = _mm256_and_si256(tmp_1_2_3,a__4);
  _tmp1109_ = _mm256_andnot_si256(a__4,_tmp1076_);
  tmp_1_3_2 = _mm256_or_si256(_tmp1108_,_tmp1109_);
  _tmp1111_ = _mm256_andnot_si256(a__4,tmp_1_2_6);
  _tmp1112_ = _mm256_and_si256(tmp_1_2_7,a__4);
  tmp_1_3_3 = _mm256_or_si256(_tmp1112_,_tmp1111_);
  _tmp1113_ = _mm256_andnot_si256(a__4,tmp_1_2_3);
  tmp_1_3_4 = _mm256_or_si256(_tmp1112_,_tmp1113_);
  _tmp1115_ = _mm256_andnot_si256(a__4,tmp_1_2_1);
  _tmp1116_ = _mm256_and_si256(_tmp1087_,a__4);
  tmp_1_3_5 = _mm256_or_si256(_tmp1116_,_tmp1115_);
  _tmp1119_ = _mm256_andnot_si256(a__4,tmp_1_2_7);
  tmp_1_3_7 = _mm256_or_si256(_tmp1108_,_tmp1119_);
  _tmp1121_ = _mm256_andnot_si256(a__3,tmp_1_3_0);
  _tmp1122_ = _mm256_and_si256(_tmp1108_,a__3);
  tmp_1_4_0 = _mm256_or_si256(_tmp1122_,_tmp1121_);
  _tmp1123_ = _mm256_andnot_si256(a__3,tmp_1_3_2);
  _tmp1124_ = _mm256_and_si256(tmp_1_3_3,a__3);
  tmp_1_4_1 = _mm256_or_si256(_tmp1124_,_tmp1123_);
  _tmp1125_ = _mm256_andnot_si256(a__3,tmp_1_3_4);
  _tmp1126_ = _mm256_and_si256(tmp_1_3_5,a__3);
  tmp_1_4_2 = _mm256_or_si256(_tmp1126_,_tmp1125_);
  _tmp1128_ = _mm256_and_si256(tmp_1_3_7,a__3);
  tmp_1_4_3 = _mm256_or_si256(_tmp1128_,_tmp1125_);
  _tmp1129_ = _mm256_andnot_si256(a__2,tmp_1_4_0);
  _tmp1130_ = _mm256_and_si256(tmp_1_4_1,a__2);
  tmp_1_5_0 = _mm256_or_si256(_tmp1130_,_tmp1129_);
  _tmp1131_ = _mm256_andnot_si256(a__2,tmp_1_4_2);
  _tmp1132_ = _mm256_and_si256(tmp_1_4_3,a__2);
  tmp_1_5_1 = _mm256_or_si256(_tmp1132_,_tmp1131_);
  _tmp1133_ = _mm256_andnot_si256(a__1,tmp_1_5_0);
  _tmp1134_ = _mm256_and_si256(tmp_1_5_1,a__1);
  tmp_1_6_0 = _mm256_or_si256(_tmp1134_,_tmp1133_);
  *out__1 = tmp_1_6_0;
  tmp_2_2_0 = _mm256_or_si256(_tmp1080_,_tmp1087_);
  tmp_2_2_3 = _mm256_or_si256(_tmp1088_,_tmp1073_);
  tmp_2_2_5 = _mm256_or_si256(_tmp1076_,_tmp1073_);
  tmp_2_2_8 = _mm256_or_si256(_tmp1088_,_tmp1075_);
  _tmp1231_ = _mm256_andnot_si256(a__4,tmp_2_2_0);
  _tmp1232_ = _mm256_and_si256(_tmp1088_,a__4);
  tmp_2_3_0 = _mm256_or_si256(_tmp1232_,_tmp1231_);
  _tmp1234_ = _mm256_and_si256(tmp_2_2_3,a__4);
  tmp_2_3_1 = _mm256_or_si256(_tmp1234_,_tmp1113_);
  _tmp1235_ = _mm256_andnot_si256(a__4,_tmp1088_);
  _tmp1236_ = _mm256_and_si256(tmp_2_2_5,a__4);
  tmp_2_3_2 = _mm256_or_si256(_tmp1236_,_tmp1235_);
  tmp_2_3_3 = _mm256_or_si256(_tmp1116_,_tmp1119_);
  _tmp1239_ = _mm256_andnot_si256(a__4,tmp_2_2_8);
  _tmp1240_ = _mm256_and_si256(_tmp1073_,a__4);
  tmp_2_3_4 = _mm256_or_si256(_tmp1240_,_tmp1239_);
  _tmp1242_ = _mm256_and_si256(_tmp1080_,a__4);
  tmp_2_3_5 = _mm256_or_si256(_tmp1242_,_tmp1119_);
  tmp_2_3_6 = _mm256_or_si256(_tmp1112_,_tmp1231_);
  tmp_2_3_7 = _mm256_or_si256(_tmp1106_,_tmp1113_);
  _tmp1247_ = _mm256_andnot_si256(a__3,tmp_2_3_0);
  _tmp1248_ = _mm256_and_si256(tmp_2_3_1,a__3);
  tmp_2_4_0 = _mm256_or_si256(_tmp1248_,_tmp1247_);
  _tmp1249_ = _mm256_andnot_si256(a__3,tmp_2_3_2);
  _tmp1250_ = _mm256_and_si256(tmp_2_3_3,a__3);
  tmp_2_4_1 = _mm256_or_si256(_tmp1250_,_tmp1249_);
  _tmp1251_ = _mm256_andnot_si256(a__3,tmp_2_3_4);
  _tmp1252_ = _mm256_and_si256(tmp_2_3_5,a__3);
  tmp_2_4_2 = _mm256_or_si256(_tmp1252_,_tmp1251_);
  _tmp1253_ = _mm256_andnot_si256(a__3,tmp_2_3_6);
  _tmp1254_ = _mm256_and_si256(tmp_2_3_7,a__3);
  tmp_2_4_3 = _mm256_or_si256(_tmp1254_,_tmp1253_);
  _tmp1255_ = _mm256_andnot_si256(a__2,tmp_2_4_0);
  _tmp1256_ = _mm256_and_si256(tmp_2_4_1,a__2);
  tmp_2_5_0 = _mm256_or_si256(_tmp1256_,_tmp1255_);
  _tmp1257_ = _mm256_andnot_si256(a__2,tmp_2_4_2);
  _tmp1258_ = _mm256_and_si256(tmp_2_4_3,a__2);
  tmp_2_5_1 = _mm256_or_si256(_tmp1258_,_tmp1257_);
  _tmp1259_ = _mm256_andnot_si256(a__1,tmp_2_5_0);
  _tmp1260_ = _mm256_and_si256(tmp_2_5_1,a__1);
  tmp_2_6_0 = _mm256_or_si256(_tmp1260_,_tmp1259_);
  *out__2 = tmp_2_6_0;
  tmp_3_3_0 = _mm256_or_si256(_tmp1232_,_tmp1113_);
  _tmp1359_ = _mm256_andnot_si256(a__4,tmp_2_2_3);
  _tmp1360_ = _mm256_and_si256(tmp_1_2_6,a__4);
  tmp_3_3_1 = _mm256_or_si256(_tmp1360_,_tmp1359_);
  _tmp1361_ = _mm256_andnot_si256(a__4,_tmp1087_);
  _tmp1362_ = _mm256_and_si256(_tmp1076_,a__4);
  tmp_3_3_2 = _mm256_or_si256(_tmp1362_,_tmp1361_);
  tmp_3_3_3 = _mm256_or_si256(_tmp1240_,_tmp1113_);
  tmp_3_3_6 = _mm256_or_si256(_tmp1360_,_tmp1113_);
  tmp_3_3_7 = _mm256_or_si256(_tmp1234_,_tmp1119_);
  _tmp1373_ = _mm256_andnot_si256(a__3,tmp_3_3_0);
  _tmp1374_ = _mm256_and_si256(tmp_3_3_1,a__3);
  tmp_3_4_0 = _mm256_or_si256(_tmp1374_,_tmp1373_);
  _tmp1375_ = _mm256_andnot_si256(a__3,tmp_3_3_2);
  _tmp1376_ = _mm256_and_si256(tmp_3_3_3,a__3);
  tmp_3_4_1 = _mm256_or_si256(_tmp1376_,_tmp1375_);
  _tmp1377_ = _mm256_andnot_si256(a__3,_tmp1109_);
  tmp_3_4_2 = _mm256_or_si256(_tmp1128_,_tmp1377_);
  _tmp1379_ = _mm256_andnot_si256(a__3,tmp_3_3_6);
  _tmp1380_ = _mm256_and_si256(tmp_3_3_7,a__3);
  tmp_3_4_3 = _mm256_or_si256(_tmp1380_,_tmp1379_);
  _tmp1381_ = _mm256_andnot_si256(a__2,tmp_3_4_0);
  _tmp1382_ = _mm256_and_si256(tmp_3_4_1,a__2);
  tmp_3_5_0 = _mm256_or_si256(_tmp1382_,_tmp1381_);
  _tmp1383_ = _mm256_andnot_si256(a__2,tmp_3_4_2);
  _tmp1384_ = _mm256_and_si256(tmp_3_4_3,a__2);
  tmp_3_5_1 = _mm256_or_si256(_tmp1384_,_tmp1383_);
  _tmp1385_ = _mm256_andnot_si256(a__1,tmp_3_5_0);
  _tmp1386_ = _mm256_and_si256(tmp_3_5_1,a__1);
  tmp_3_6_0 = _mm256_or_si256(_tmp1386_,_tmp1385_);
  *out__3 = tmp_3_6_0;
  tmp_4_3_0 = _mm256_or_si256(_tmp1108_,_tmp1231_);
  _tmp1486_ = _mm256_and_si256(tmp_2_2_8,a__4);
  tmp_4_3_1 = _mm256_or_si256(_tmp1486_,_tmp1119_);
  tmp_4_3_2 = _mm256_or_si256(_tmp1112_,_tmp1239_);
  _tmp1490_ = _mm256_and_si256(tmp_2_2_0,a__4);
  tmp_4_3_3 = _mm256_or_si256(_tmp1490_,_tmp1113_);
  tmp_4_3_4 = _mm256_or_si256(_tmp1112_,_tmp1105_);
  tmp_4_3_6 = _mm256_or_si256(_tmp1242_,_tmp1115_);
  tmp_4_3_7 = _mm256_or_si256(_tmp1232_,_tmp1111_);
  _tmp1499_ = _mm256_andnot_si256(a__3,tmp_4_3_0);
  _tmp1500_ = _mm256_and_si256(tmp_4_3_1,a__3);
  tmp_4_4_0 = _mm256_or_si256(_tmp1500_,_tmp1499_);
  _tmp1501_ = _mm256_andnot_si256(a__3,tmp_4_3_2);
  _tmp1502_ = _mm256_and_si256(tmp_4_3_3,a__3);
  tmp_4_4_1 = _mm256_or_si256(_tmp1502_,_tmp1501_);
  _tmp1503_ = _mm256_andnot_si256(a__3,tmp_4_3_4);
  _tmp1504_ = _mm256_and_si256(tmp_1_3_2,a__3);
  tmp_4_4_2 = _mm256_or_si256(_tmp1504_,_tmp1503_);
  _tmp1505_ = _mm256_andnot_si256(a__3,tmp_4_3_6);
  _tmp1506_ = _mm256_and_si256(tmp_4_3_7,a__3);
  tmp_4_4_3 = _mm256_or_si256(_tmp1506_,_tmp1505_);
  _tmp1507_ = _mm256_andnot_si256(a__2,tmp_4_4_0);
  _tmp1508_ = _mm256_and_si256(tmp_4_4_1,a__2);
  tmp_4_5_0 = _mm256_or_si256(_tmp1508_,_tmp1507_);
  _tmp1509_ = _mm256_andnot_si256(a__2,tmp_4_4_2);
  _tmp1510_ = _mm256_and_si256(tmp_4_4_3,a__2);
  tmp_4_5_1 = _mm256_or_si256(_tmp1510_,_tmp1509_);
  _tmp1511_ = _mm256_andnot_si256(a__1,tmp_4_5_0);
  _tmp1512_ = _mm256_and_si256(tmp_4_5_1,a__1);
  tmp_4_6_0 = _mm256_or_si256(_tmp1512_,_tmp1511_);
  *out__4 = tmp_4_6_0;
}


static void sbox__3 (__m256i a__1,__m256i a__2,__m256i a__3,__m256i a__4,__m256i a__5,__m256i a__6,__m256i* out__1,__m256i* out__2,__m256i* out__3,__m256i* out__4) {
  __m256i _tmp1515_;
  __m256i _tmp1577_;
  __m256i _tmp1578_;
  __m256i _tmp1579_;
  __m256i _tmp1582_;
  __m256i _tmp1583_;
  __m256i _tmp1584_;
  __m256i _tmp1609_;
  __m256i _tmp1610_;
  __m256i _tmp1611_;
  __m256i _tmp1612_;
  __m256i _tmp1614_;
  __m256i _tmp1615_;
  __m256i _tmp1616_;
  __m256i _tmp1617_;
  __m256i _tmp1618_;
  __m256i _tmp1619_;
  __m256i _tmp1621_;
  __m256i _tmp1622_;
  __m256i _tmp1623_;
  __m256i _tmp1625_;
  __m256i _tmp1626_;
  __m256i _tmp1627_;
  __m256i _tmp1628_;
  __m256i _tmp1629_;
  __m256i _tmp1630_;
  __m256i _tmp1631_;
  __m256i _tmp1632_;
  __m256i _tmp1633_;
  __m256i _tmp1634_;
  __m256i _tmp1635_;
  __m256i _tmp1636_;
  __m256i _tmp1637_;
  __m256i _tmp1638_;
  __m256i _tmp1739_;
  __m256i _tmp1741_;
  __m256i _tmp1742_;
  __m256i _tmp1743_;
  __m256i _tmp1744_;
  __m256i _tmp1745_;
  __m256i _tmp1748_;
  __m256i _tmp1749_;
  __m256i _tmp1751_;
  __m256i _tmp1752_;
  __m256i _tmp1753_;
  __m256i _tmp1754_;
  __m256i _tmp1755_;
  __m256i _tmp1756_;
  __m256i _tmp1757_;
  __m256i _tmp1758_;
  __m256i _tmp1759_;
  __m256i _tmp1760_;
  __m256i _tmp1761_;
  __m256i _tmp1762_;
  __m256i _tmp1763_;
  __m256i _tmp1764_;
  __m256i _tmp1866_;
  __m256i _tmp1869_;
  __m256i _tmp1871_;
  __m256i _tmp1874_;
  __m256i _tmp1876_;
  __m256i _tmp1877_;
  __m256i _tmp1878_;
  __m256i _tmp1879_;
  __m256i _tmp1880_;
  __m256i _tmp1881_;
  __m256i _tmp1882_;
  __m256i _tmp1883_;
  __m256i _tmp1884_;
  __m256i _tmp1885_;
  __m256i _tmp1886_;
  __m256i _tmp1887_;
  __m256i _tmp1888_;
  __m256i _tmp1889_;
  __m256i _tmp1890_;
  __m256i _tmp1992_;
  __m256i _tmp2000_;
  __m256i _tmp2003_;
  __m256i _tmp2004_;
  __m256i _tmp2005_;
  __m256i _tmp2006_;
  __m256i _tmp2007_;
  __m256i _tmp2008_;
  __m256i _tmp2009_;
  __m256i _tmp2010_;
  __m256i _tmp2011_;
  __m256i _tmp2012_;
  __m256i _tmp2013_;
  __m256i _tmp2014_;
  __m256i _tmp2015_;
  __m256i _tmp2016_;
  __m256i tmp_1_1_1;
  __m256i tmp_1_2_0;
  __m256i tmp_1_2_10;
  __m256i tmp_1_2_3;
  __m256i tmp_1_2_5;
  __m256i tmp_1_2_6;
  __m256i tmp_1_3_0;
  __m256i tmp_1_3_1;
  __m256i tmp_1_3_3;
  __m256i tmp_1_3_4;
  __m256i tmp_1_3_5;
  __m256i tmp_1_3_6;
  __m256i tmp_1_3_7;
  __m256i tmp_1_4_0;
  __m256i tmp_1_4_1;
  __m256i tmp_1_4_2;
  __m256i tmp_1_4_3;
  __m256i tmp_1_5_0;
  __m256i tmp_1_5_1;
  __m256i tmp_1_6_0;
  __m256i tmp_2_2_13;
  __m256i tmp_2_2_14;
  __m256i tmp_2_2_4;
  __m256i tmp_2_3_0;
  __m256i tmp_2_3_2;
  __m256i tmp_2_3_3;
  __m256i tmp_2_3_4;
  __m256i tmp_2_3_5;
  __m256i tmp_2_3_6;
  __m256i tmp_2_3_7;
  __m256i tmp_2_4_0;
  __m256i tmp_2_4_1;
  __m256i tmp_2_4_2;
  __m256i tmp_2_4_3;
  __m256i tmp_2_5_0;
  __m256i tmp_2_5_1;
  __m256i tmp_2_6_0;
  __m256i tmp_3_2_8;
  __m256i tmp_3_3_1;
  __m256i tmp_3_3_2;
  __m256i tmp_3_3_4;
  __m256i tmp_3_3_5;
  __m256i tmp_3_3_6;
  __m256i tmp_3_3_7;
  __m256i tmp_3_4_0;
  __m256i tmp_3_4_1;
  __m256i tmp_3_4_2;
  __m256i tmp_3_4_3;
  __m256i tmp_3_5_0;
  __m256i tmp_3_5_1;
  __m256i tmp_3_6_0;
  __m256i tmp_4_3_1;
  __m256i tmp_4_3_2;
  __m256i tmp_4_3_4;
  __m256i tmp_4_3_5;
  __m256i tmp_4_3_6;
  __m256i tmp_4_4_0;
  __m256i tmp_4_4_1;
  __m256i tmp_4_4_2;
  __m256i tmp_4_4_3;
  __m256i tmp_4_5_0;
  __m256i tmp_4_5_1;
  __m256i tmp_4_6_0;

  _tmp1515_ = _mm256_andnot_si256(a__6,_mm256_set1_epi32(-1));
  tmp_1_1_1 = _mm256_or_si256(a__6,_tmp1515_);
  _tmp1577_ = _mm256_andnot_si256(a__5,a__6);
  _tmp1578_ = _mm256_and_si256(tmp_1_1_1,a__5);
  tmp_1_2_0 = _mm256_or_si256(_tmp1578_,_tmp1577_);
  _tmp1579_ = _mm256_andnot_si256(a__5,tmp_1_1_1);
  _tmp1582_ = _mm256_and_si256(a__6,a__5);
  _tmp1583_ = _mm256_andnot_si256(a__5,_tmp1515_);
  _tmp1584_ = _mm256_and_si256(_tmp1515_,a__5);
  tmp_1_2_3 = _mm256_or_si256(_tmp1584_,_tmp1583_);
  tmp_1_2_5 = _mm256_or_si256(_tmp1582_,_tmp1583_);
  tmp_1_2_6 = _mm256_or_si256(_tmp1578_,_tmp1583_);
  tmp_1_2_10 = _mm256_or_si256(_tmp1584_,_tmp1579_);
  _tmp1609_ = _mm256_andnot_si256(a__4,tmp_1_2_0);
  _tmp1610_ = _mm256_and_si256(_tmp1579_,a__4);
  tmp_1_3_0 = _mm256_or_si256(_tmp1610_,_tmp1609_);
  _tmp1611_ = _mm256_andnot_si256(a__4,_tmp1582_);
  _tmp1612_ = _mm256_and_si256(tmp_1_2_3,a__4);
  tmp_1_3_1 = _mm256_or_si256(_tmp1612_,_tmp1611_);
  _tmp1614_ = _mm256_and_si256(tmp_1_2_5,a__4);
  _tmp1615_ = _mm256_andnot_si256(a__4,tmp_1_2_6);
  _tmp1616_ = _mm256_and_si256(tmp_1_2_0,a__4);
  tmp_1_3_3 = _mm256_or_si256(_tmp1616_,_tmp1615_);
  _tmp1617_ = _mm256_andnot_si256(a__4,tmp_1_2_5);
  _tmp1618_ = _mm256_and_si256(_tmp1583_,a__4);
  tmp_1_3_4 = _mm256_or_si256(_tmp1618_,_tmp1617_);
  _tmp1619_ = _mm256_andnot_si256(a__4,tmp_1_2_10);
  tmp_1_3_5 = _mm256_or_si256(_tmp1616_,_tmp1619_);
  _tmp1621_ = _mm256_andnot_si256(a__4,_tmp1579_);
  _tmp1622_ = _mm256_and_si256(_tmp1578_,a__4);
  tmp_1_3_6 = _mm256_or_si256(_tmp1622_,_tmp1621_);
  _tmp1623_ = _mm256_andnot_si256(a__4,_tmp1577_);
  tmp_1_3_7 = _mm256_or_si256(_tmp1614_,_tmp1623_);
  _tmp1625_ = _mm256_andnot_si256(a__3,tmp_1_3_0);
  _tmp1626_ = _mm256_and_si256(tmp_1_3_1,a__3);
  tmp_1_4_0 = _mm256_or_si256(_tmp1626_,_tmp1625_);
  _tmp1627_ = _mm256_andnot_si256(a__3,_tmp1614_);
  _tmp1628_ = _mm256_and_si256(tmp_1_3_3,a__3);
  tmp_1_4_1 = _mm256_or_si256(_tmp1628_,_tmp1627_);
  _tmp1629_ = _mm256_andnot_si256(a__3,tmp_1_3_4);
  _tmp1630_ = _mm256_and_si256(tmp_1_3_5,a__3);
  tmp_1_4_2 = _mm256_or_si256(_tmp1630_,_tmp1629_);
  _tmp1631_ = _mm256_andnot_si256(a__3,tmp_1_3_6);
  _tmp1632_ = _mm256_and_si256(tmp_1_3_7,a__3);
  tmp_1_4_3 = _mm256_or_si256(_tmp1632_,_tmp1631_);
  _tmp1633_ = _mm256_andnot_si256(a__2,tmp_1_4_0);
  _tmp1634_ = _mm256_and_si256(tmp_1_4_1,a__2);
  tmp_1_5_0 = _mm256_or_si256(_tmp1634_,_tmp1633_);
  _tmp1635_ = _mm256_andnot_si256(a__2,tmp_1_4_2);
  _tmp1636_ = _mm256_and_si256(tmp_1_4_3,a__2);
  tmp_1_5_1 = _mm256_or_si256(_tmp1636_,_tmp1635_);
  _tmp1637_ = _mm256_andnot_si256(a__1,tmp_1_5_0);
  _tmp1638_ = _mm256_and_si256(tmp_1_5_1,a__1);
  tmp_1_6_0 = _mm256_or_si256(_tmp1638_,_tmp1637_);
  *out__1 = tmp_1_6_0;
  tmp_2_2_4 = _mm256_or_si256(_tmp1582_,_tmp1577_);
  tmp_2_2_13 = _mm256_or_si256(_tmp1584_,_tmp1577_);
  tmp_2_2_14 = _mm256_or_si256(_tmp1582_,_tmp1579_);
  tmp_2_3_0 = _mm256_or_si256(_tmp1614_,_tmp1619_);
  _tmp1739_ = _mm256_andnot_si256(a__4,tmp_2_2_4);
  tmp_2_3_2 = _mm256_or_si256(_tmp1622_,_tmp1739_);
  _tmp1741_ = _mm256_andnot_si256(a__4,_tmp1584_);
  _tmp1742_ = _mm256_and_si256(tmp_1_2_10,a__4);
  tmp_2_3_3 = _mm256_or_si256(_tmp1742_,_tmp1741_);
  _tmp1743_ = _mm256_andnot_si256(a__4,_tmp1578_);
  _tmp1744_ = _mm256_and_si256(_tmp1582_,a__4);
  tmp_2_3_4 = _mm256_or_si256(_tmp1744_,_tmp1743_);
  _tmp1745_ = _mm256_andnot_si256(a__4,_tmp1583_);
  tmp_2_3_5 = _mm256_or_si256(_tmp1742_,_tmp1745_);
  _tmp1748_ = _mm256_and_si256(tmp_2_2_13,a__4);
  tmp_2_3_6 = _mm256_or_si256(_tmp1748_,_tmp1617_);
  _tmp1749_ = _mm256_andnot_si256(a__4,tmp_2_2_14);
  tmp_2_3_7 = _mm256_or_si256(_tmp1622_,_tmp1749_);
  _tmp1751_ = _mm256_andnot_si256(a__3,tmp_2_3_0);
  _tmp1752_ = _mm256_and_si256(_tmp1609_,a__3);
  tmp_2_4_0 = _mm256_or_si256(_tmp1752_,_tmp1751_);
  _tmp1753_ = _mm256_andnot_si256(a__3,tmp_2_3_2);
  _tmp1754_ = _mm256_and_si256(tmp_2_3_3,a__3);
  tmp_2_4_1 = _mm256_or_si256(_tmp1754_,_tmp1753_);
  _tmp1755_ = _mm256_andnot_si256(a__3,tmp_2_3_4);
  _tmp1756_ = _mm256_and_si256(tmp_2_3_5,a__3);
  tmp_2_4_2 = _mm256_or_si256(_tmp1756_,_tmp1755_);
  _tmp1757_ = _mm256_andnot_si256(a__3,tmp_2_3_6);
  _tmp1758_ = _mm256_and_si256(tmp_2_3_7,a__3);
  tmp_2_4_3 = _mm256_or_si256(_tmp1758_,_tmp1757_);
  _tmp1759_ = _mm256_andnot_si256(a__2,tmp_2_4_0);
  _tmp1760_ = _mm256_and_si256(tmp_2_4_1,a__2);
  tmp_2_5_0 = _mm256_or_si256(_tmp1760_,_tmp1759_);
  _tmp1761_ = _mm256_andnot_si256(a__2,tmp_2_4_2);
  _tmp1762_ = _mm256_and_si256(tmp_2_4_3,a__2);
  tmp_2_5_1 = _mm256_or_si256(_tmp1762_,_tmp1761_);
  _tmp1763_ = _mm256_andnot_si256(a__1,tmp_2_5_0);
  _tmp1764_ = _mm256_and_si256(tmp_2_5_1,a__1);
  tmp_2_6_0 = _mm256_or_si256(_tmp1764_,_tmp1763_);
  *out__2 = tmp_2_6_0;
  tmp_3_2_8 = _mm256_or_si256(_tmp1578_,_tmp1579_);
  tmp_3_3_1 = _mm256_or_si256(_tmp1622_,_tmp1609_);
  _tmp1866_ = _mm256_and_si256(_tmp1577_,a__4);
  tmp_3_3_2 = _mm256_or_si256(_tmp1866_,_tmp1743_);
  _tmp1869_ = _mm256_andnot_si256(a__4,tmp_3_2_8);
  tmp_3_3_4 = _mm256_or_si256(_tmp1744_,_tmp1869_);
  _tmp1871_ = _mm256_andnot_si256(a__4,tmp_2_2_13);
  tmp_3_3_5 = _mm256_or_si256(_tmp1618_,_tmp1871_);
  _tmp1874_ = _mm256_and_si256(tmp_1_2_6,a__4);
  tmp_3_3_6 = _mm256_or_si256(_tmp1874_,_tmp1745_);
  _tmp1876_ = _mm256_and_si256(tmp_2_2_4,a__4);
  tmp_3_3_7 = _mm256_or_si256(_tmp1876_,_tmp1743_);
  _tmp1877_ = _mm256_andnot_si256(a__3,tmp_2_3_5);
  _tmp1878_ = _mm256_and_si256(tmp_3_3_1,a__3);
  tmp_3_4_0 = _mm256_or_si256(_tmp1878_,_tmp1877_);
  _tmp1879_ = _mm256_andnot_si256(a__3,tmp_3_3_2);
  _tmp1880_ = _mm256_and_si256(tmp_2_3_6,a__3);
  tmp_3_4_1 = _mm256_or_si256(_tmp1880_,_tmp1879_);
  _tmp1881_ = _mm256_andnot_si256(a__3,tmp_3_3_4);
  _tmp1882_ = _mm256_and_si256(tmp_3_3_5,a__3);
  tmp_3_4_2 = _mm256_or_si256(_tmp1882_,_tmp1881_);
  _tmp1883_ = _mm256_andnot_si256(a__3,tmp_3_3_6);
  _tmp1884_ = _mm256_and_si256(tmp_3_3_7,a__3);
  tmp_3_4_3 = _mm256_or_si256(_tmp1884_,_tmp1883_);
  _tmp1885_ = _mm256_andnot_si256(a__2,tmp_3_4_0);
  _tmp1886_ = _mm256_and_si256(tmp_3_4_1,a__2);
  tmp_3_5_0 = _mm256_or_si256(_tmp1886_,_tmp1885_);
  _tmp1887_ = _mm256_andnot_si256(a__2,tmp_3_4_2);
  _tmp1888_ = _mm256_and_si256(tmp_3_4_3,a__2);
  tmp_3_5_1 = _mm256_or_si256(_tmp1888_,_tmp1887_);
  _tmp1889_ = _mm256_andnot_si256(a__1,tmp_3_5_0);
  _tmp1890_ = _mm256_and_si256(tmp_3_5_1,a__1);
  tmp_3_6_0 = _mm256_or_si256(_tmp1890_,_tmp1889_);
  *out__3 = tmp_3_6_0;
  tmp_4_3_1 = _mm256_or_si256(_tmp1614_,_tmp1611_);
  _tmp1992_ = _mm256_and_si256(_tmp1584_,a__4);
  tmp_4_3_2 = _mm256_or_si256(_tmp1992_,_tmp1617_);
  tmp_4_3_4 = _mm256_or_si256(_tmp1618_,_tmp1739_);
  tmp_4_3_5 = _mm256_or_si256(_tmp1742_,_tmp1743_);
  _tmp2000_ = _mm256_and_si256(tmp_2_2_14,a__4);
  tmp_4_3_6 = _mm256_or_si256(_tmp2000_,_tmp1619_);
  _tmp2003_ = _mm256_andnot_si256(a__3,tmp_1_3_5);
  _tmp2004_ = _mm256_and_si256(tmp_4_3_1,a__3);
  tmp_4_4_0 = _mm256_or_si256(_tmp2004_,_tmp2003_);
  _tmp2005_ = _mm256_andnot_si256(a__3,tmp_4_3_2);
  _tmp2006_ = _mm256_and_si256(tmp_1_3_6,a__3);
  tmp_4_4_1 = _mm256_or_si256(_tmp2006_,_tmp2005_);
  _tmp2007_ = _mm256_andnot_si256(a__3,tmp_4_3_4);
  _tmp2008_ = _mm256_and_si256(tmp_4_3_5,a__3);
  tmp_4_4_2 = _mm256_or_si256(_tmp2008_,_tmp2007_);
  _tmp2009_ = _mm256_andnot_si256(a__3,tmp_4_3_6);
  _tmp2010_ = _mm256_and_si256(_tmp1617_,a__3);
  tmp_4_4_3 = _mm256_or_si256(_tmp2010_,_tmp2009_);
  _tmp2011_ = _mm256_andnot_si256(a__2,tmp_4_4_0);
  _tmp2012_ = _mm256_and_si256(tmp_4_4_1,a__2);
  tmp_4_5_0 = _mm256_or_si256(_tmp2012_,_tmp2011_);
  _tmp2013_ = _mm256_andnot_si256(a__2,tmp_4_4_2);
  _tmp2014_ = _mm256_and_si256(tmp_4_4_3,a__2);
  tmp_4_5_1 = _mm256_or_si256(_tmp2014_,_tmp2013_);
  _tmp2015_ = _mm256_andnot_si256(a__1,tmp_4_5_0);
  _tmp2016_ = _mm256_and_si256(tmp_4_5_1,a__1);
  tmp_4_6_0 = _mm256_or_si256(_tmp2016_,_tmp2015_);
  *out__4 = tmp_4_6_0;
}


static void sbox__4 (__m256i a__1,__m256i a__2,__m256i a__3,__m256i a__4,__m256i a__5,__m256i a__6,__m256i* out__1,__m256i* out__2,__m256i* out__3,__m256i* out__4) {
  __m256i _tmp2019_;
  __m256i _tmp2081_;
  __m256i _tmp2082_;
  __m256i _tmp2084_;
  __m256i _tmp2086_;
  __m256i _tmp2087_;
  __m256i _tmp2089_;
  __m256i _tmp2113_;
  __m256i _tmp2114_;
  __m256i _tmp2115_;
  __m256i _tmp2116_;
  __m256i _tmp2117_;
  __m256i _tmp2118_;
  __m256i _tmp2119_;
  __m256i _tmp2120_;
  __m256i _tmp2121_;
  __m256i _tmp2122_;
  __m256i _tmp2123_;
  __m256i _tmp2124_;
  __m256i _tmp2126_;
  __m256i _tmp2127_;
  __m256i _tmp2128_;
  __m256i _tmp2129_;
  __m256i _tmp2130_;
  __m256i _tmp2131_;
  __m256i _tmp2132_;
  __m256i _tmp2133_;
  __m256i _tmp2134_;
  __m256i _tmp2135_;
  __m256i _tmp2136_;
  __m256i _tmp2137_;
  __m256i _tmp2138_;
  __m256i _tmp2139_;
  __m256i _tmp2140_;
  __m256i _tmp2141_;
  __m256i _tmp2142_;
  __m256i _tmp2239_;
  __m256i _tmp2241_;
  __m256i _tmp2248_;
  __m256i _tmp2249_;
  __m256i _tmp2252_;
  __m256i _tmp2255_;
  __m256i _tmp2256_;
  __m256i _tmp2257_;
  __m256i _tmp2258_;
  __m256i _tmp2259_;
  __m256i _tmp2260_;
  __m256i _tmp2261_;
  __m256i _tmp2262_;
  __m256i _tmp2263_;
  __m256i _tmp2264_;
  __m256i _tmp2265_;
  __m256i _tmp2266_;
  __m256i _tmp2267_;
  __m256i _tmp2268_;
  __m256i _tmp2366_;
  __m256i _tmp2370_;
  __m256i _tmp2379_;
  __m256i _tmp2381_;
  __m256i _tmp2382_;
  __m256i _tmp2383_;
  __m256i _tmp2384_;
  __m256i _tmp2385_;
  __m256i _tmp2386_;
  __m256i _tmp2387_;
  __m256i _tmp2388_;
  __m256i _tmp2389_;
  __m256i _tmp2390_;
  __m256i _tmp2391_;
  __m256i _tmp2392_;
  __m256i _tmp2393_;
  __m256i _tmp2394_;
  __m256i _tmp2491_;
  __m256i _tmp2494_;
  __m256i _tmp2500_;
  __m256i _tmp2507_;
  __m256i _tmp2508_;
  __m256i _tmp2509_;
  __m256i _tmp2510_;
  __m256i _tmp2511_;
  __m256i _tmp2512_;
  __m256i _tmp2513_;
  __m256i _tmp2514_;
  __m256i _tmp2515_;
  __m256i _tmp2516_;
  __m256i _tmp2517_;
  __m256i _tmp2518_;
  __m256i _tmp2519_;
  __m256i _tmp2520_;
  __m256i tmp_1_1_1;
  __m256i tmp_1_2_0;
  __m256i tmp_1_2_10;
  __m256i tmp_1_2_6;
  __m256i tmp_1_2_7;
  __m256i tmp_1_2_8;
  __m256i tmp_1_2_9;
  __m256i tmp_1_3_0;
  __m256i tmp_1_3_1;
  __m256i tmp_1_3_2;
  __m256i tmp_1_3_3;
  __m256i tmp_1_3_4;
  __m256i tmp_1_3_5;
  __m256i tmp_1_3_6;
  __m256i tmp_1_3_7;
  __m256i tmp_1_4_0;
  __m256i tmp_1_4_1;
  __m256i tmp_1_4_2;
  __m256i tmp_1_4_3;
  __m256i tmp_1_5_0;
  __m256i tmp_1_5_1;
  __m256i tmp_1_6_0;
  __m256i tmp_2_2_13;
  __m256i tmp_2_2_2;
  __m256i tmp_2_3_0;
  __m256i tmp_2_3_1;
  __m256i tmp_2_3_2;
  __m256i tmp_2_3_3;
  __m256i tmp_2_3_4;
  __m256i tmp_2_3_5;
  __m256i tmp_2_3_6;
  __m256i tmp_2_3_7;
  __m256i tmp_2_4_0;
  __m256i tmp_2_4_1;
  __m256i tmp_2_4_2;
  __m256i tmp_2_4_3;
  __m256i tmp_2_5_0;
  __m256i tmp_2_5_1;
  __m256i tmp_2_6_0;
  __m256i tmp_3_2_5;
  __m256i tmp_3_3_0;
  __m256i tmp_3_3_1;
  __m256i tmp_3_3_3;
  __m256i tmp_3_3_4;
  __m256i tmp_3_3_5;
  __m256i tmp_3_3_7;
  __m256i tmp_3_4_0;
  __m256i tmp_3_4_1;
  __m256i tmp_3_4_2;
  __m256i tmp_3_4_3;
  __m256i tmp_3_5_0;
  __m256i tmp_3_5_1;
  __m256i tmp_3_6_0;
  __m256i tmp_4_3_0;
  __m256i tmp_4_3_1;
  __m256i tmp_4_3_2;
  __m256i tmp_4_3_3;
  __m256i tmp_4_3_4;
  __m256i tmp_4_3_7;
  __m256i tmp_4_4_0;
  __m256i tmp_4_4_1;
  __m256i tmp_4_4_2;
  __m256i tmp_4_4_3;
  __m256i tmp_4_5_0;
  __m256i tmp_4_5_1;
  __m256i tmp_4_6_0;

  _tmp2019_ = _mm256_andnot_si256(a__6,_mm256_set1_epi32(-1));
  tmp_1_1_1 = _mm256_or_si256(a__6,_tmp2019_);
  _tmp2081_ = _mm256_andnot_si256(a__5,a__6);
  _tmp2082_ = _mm256_and_si256(tmp_1_1_1,a__5);
  tmp_1_2_0 = _mm256_or_si256(_tmp2082_,_tmp2081_);
  _tmp2084_ = _mm256_and_si256(a__6,a__5);
  _tmp2086_ = _mm256_and_si256(_tmp2019_,a__5);
  _tmp2087_ = _mm256_andnot_si256(a__5,tmp_1_1_1);
  _tmp2089_ = _mm256_andnot_si256(a__5,_tmp2019_);
  tmp_1_2_6 = _mm256_or_si256(_tmp2084_,_tmp2089_);
  tmp_1_2_7 = _mm256_or_si256(_tmp2086_,_tmp2087_);
  tmp_1_2_8 = _mm256_or_si256(_tmp2084_,_tmp2081_);
  tmp_1_2_9 = _mm256_or_si256(_tmp2086_,_tmp2081_);
  tmp_1_2_10 = _mm256_or_si256(_tmp2082_,_tmp2089_);
  _tmp2113_ = _mm256_andnot_si256(a__4,tmp_1_2_0);
  _tmp2114_ = _mm256_and_si256(_tmp2084_,a__4);
  tmp_1_3_0 = _mm256_or_si256(_tmp2114_,_tmp2113_);
  _tmp2115_ = _mm256_andnot_si256(a__4,_tmp2086_);
  _tmp2116_ = _mm256_and_si256(_tmp2087_,a__4);
  tmp_1_3_1 = _mm256_or_si256(_tmp2116_,_tmp2115_);
  _tmp2117_ = _mm256_andnot_si256(a__4,_tmp2089_);
  _tmp2118_ = _mm256_and_si256(tmp_1_2_0,a__4);
  tmp_1_3_2 = _mm256_or_si256(_tmp2118_,_tmp2117_);
  _tmp2119_ = _mm256_andnot_si256(a__4,tmp_1_2_6);
  _tmp2120_ = _mm256_and_si256(tmp_1_2_7,a__4);
  tmp_1_3_3 = _mm256_or_si256(_tmp2120_,_tmp2119_);
  _tmp2121_ = _mm256_andnot_si256(a__4,tmp_1_2_8);
  _tmp2122_ = _mm256_and_si256(tmp_1_2_9,a__4);
  tmp_1_3_4 = _mm256_or_si256(_tmp2122_,_tmp2121_);
  _tmp2123_ = _mm256_andnot_si256(a__4,tmp_1_2_10);
  _tmp2124_ = _mm256_and_si256(_tmp2082_,a__4);
  tmp_1_3_5 = _mm256_or_si256(_tmp2124_,_tmp2123_);
  _tmp2126_ = _mm256_and_si256(tmp_1_2_6,a__4);
  tmp_1_3_6 = _mm256_or_si256(_tmp2126_,_tmp2123_);
  _tmp2127_ = _mm256_andnot_si256(a__4,_tmp2081_);
  _tmp2128_ = _mm256_and_si256(_tmp2086_,a__4);
  tmp_1_3_7 = _mm256_or_si256(_tmp2128_,_tmp2127_);
  _tmp2129_ = _mm256_andnot_si256(a__3,tmp_1_3_0);
  _tmp2130_ = _mm256_and_si256(tmp_1_3_1,a__3);
  tmp_1_4_0 = _mm256_or_si256(_tmp2130_,_tmp2129_);
  _tmp2131_ = _mm256_andnot_si256(a__3,tmp_1_3_2);
  _tmp2132_ = _mm256_and_si256(tmp_1_3_3,a__3);
  tmp_1_4_1 = _mm256_or_si256(_tmp2132_,_tmp2131_);
  _tmp2133_ = _mm256_andnot_si256(a__3,tmp_1_3_4);
  _tmp2134_ = _mm256_and_si256(tmp_1_3_5,a__3);
  tmp_1_4_2 = _mm256_or_si256(_tmp2134_,_tmp2133_);
  _tmp2135_ = _mm256_andnot_si256(a__3,tmp_1_3_6);
  _tmp2136_ = _mm256_and_si256(tmp_1_3_7,a__3);
  tmp_1_4_3 = _mm256_or_si256(_tmp2136_,_tmp2135_);
  _tmp2137_ = _mm256_andnot_si256(a__2,tmp_1_4_0);
  _tmp2138_ = _mm256_and_si256(tmp_1_4_1,a__2);
  tmp_1_5_0 = _mm256_or_si256(_tmp2138_,_tmp2137_);
  _tmp2139_ = _mm256_andnot_si256(a__2,tmp_1_4_2);
  _tmp2140_ = _mm256_and_si256(tmp_1_4_3,a__2);
  tmp_1_5_1 = _mm256_or_si256(_tmp2140_,_tmp2139_);
  _tmp2141_ = _mm256_andnot_si256(a__1,tmp_1_5_0);
  _tmp2142_ = _mm256_and_si256(tmp_1_5_1,a__1);
  tmp_1_6_0 = _mm256_or_si256(_tmp2142_,_tmp2141_);
  *out__1 = tmp_1_6_0;
  tmp_2_2_2 = _mm256_or_si256(_tmp2084_,_tmp2087_);
  tmp_2_2_13 = _mm256_or_si256(_tmp2086_,_tmp2089_);
  _tmp2239_ = _mm256_andnot_si256(a__4,tmp_1_2_9);
  tmp_2_3_0 = _mm256_or_si256(_tmp2126_,_tmp2239_);
  _tmp2241_ = _mm256_andnot_si256(a__4,tmp_2_2_2);
  tmp_2_3_1 = _mm256_or_si256(_tmp2122_,_tmp2241_);
  tmp_2_3_2 = _mm256_or_si256(_tmp2122_,_tmp2239_);
  tmp_2_3_3 = _mm256_or_si256(_tmp2126_,_tmp2117_);
  _tmp2248_ = _mm256_and_si256(tmp_1_2_8,a__4);
  tmp_2_3_4 = _mm256_or_si256(_tmp2248_,_tmp2117_);
  _tmp2249_ = _mm256_andnot_si256(a__4,_tmp2082_);
  tmp_2_3_5 = _mm256_or_si256(_tmp2126_,_tmp2249_);
  _tmp2252_ = _mm256_and_si256(tmp_2_2_13,a__4);
  tmp_2_3_6 = _mm256_or_si256(_tmp2252_,_tmp2241_);
  tmp_2_3_7 = _mm256_or_si256(_tmp2122_,_tmp2119_);
  _tmp2255_ = _mm256_andnot_si256(a__3,tmp_2_3_0);
  _tmp2256_ = _mm256_and_si256(tmp_2_3_1,a__3);
  tmp_2_4_0 = _mm256_or_si256(_tmp2256_,_tmp2255_);
  _tmp2257_ = _mm256_andnot_si256(a__3,tmp_2_3_2);
  _tmp2258_ = _mm256_and_si256(tmp_2_3_3,a__3);
  tmp_2_4_1 = _mm256_or_si256(_tmp2258_,_tmp2257_);
  _tmp2259_ = _mm256_andnot_si256(a__3,tmp_2_3_4);
  _tmp2260_ = _mm256_and_si256(tmp_2_3_5,a__3);
  tmp_2_4_2 = _mm256_or_si256(_tmp2260_,_tmp2259_);
  _tmp2261_ = _mm256_andnot_si256(a__3,tmp_2_3_6);
  _tmp2262_ = _mm256_and_si256(tmp_2_3_7,a__3);
  tmp_2_4_3 = _mm256_or_si256(_tmp2262_,_tmp2261_);
  _tmp2263_ = _mm256_andnot_si256(a__2,tmp_2_4_0);
  _tmp2264_ = _mm256_and_si256(tmp_2_4_1,a__2);
  tmp_2_5_0 = _mm256_or_si256(_tmp2264_,_tmp2263_);
  _tmp2265_ = _mm256_andnot_si256(a__2,tmp_2_4_2);
  _tmp2266_ = _mm256_and_si256(tmp_2_4_3,a__2);
  tmp_2_5_1 = _mm256_or_si256(_tmp2266_,_tmp2265_);
  _tmp2267_ = _mm256_andnot_si256(a__1,tmp_2_5_0);
  _tmp2268_ = _mm256_and_si256(tmp_2_5_1,a__1);
  tmp_2_6_0 = _mm256_or_si256(_tmp2268_,_tmp2267_);
  *out__2 = tmp_2_6_0;
  tmp_3_2_5 = _mm256_or_si256(_tmp2082_,_tmp2087_);
  _tmp2366_ = _mm256_and_si256(_tmp2081_,a__4);
  tmp_3_3_0 = _mm256_or_si256(_tmp2366_,_tmp2241_);
  tmp_3_3_1 = _mm256_or_si256(_tmp2252_,_tmp2123_);
  _tmp2370_ = _mm256_and_si256(tmp_3_2_5,a__4);
  tmp_3_3_3 = _mm256_or_si256(_tmp2126_,_tmp2127_);
  tmp_3_3_4 = _mm256_or_si256(_tmp2124_,_tmp2239_);
  tmp_3_3_5 = _mm256_or_si256(_tmp2116_,_tmp2119_);
  _tmp2379_ = _mm256_andnot_si256(a__4,tmp_1_2_7);
  tmp_3_3_7 = _mm256_or_si256(_tmp2124_,_tmp2379_);
  _tmp2381_ = _mm256_andnot_si256(a__3,tmp_3_3_0);
  _tmp2382_ = _mm256_and_si256(tmp_3_3_1,a__3);
  tmp_3_4_0 = _mm256_or_si256(_tmp2382_,_tmp2381_);
  _tmp2383_ = _mm256_andnot_si256(a__3,_tmp2370_);
  _tmp2384_ = _mm256_and_si256(tmp_3_3_3,a__3);
  tmp_3_4_1 = _mm256_or_si256(_tmp2384_,_tmp2383_);
  _tmp2385_ = _mm256_andnot_si256(a__3,tmp_3_3_4);
  _tmp2386_ = _mm256_and_si256(tmp_3_3_5,a__3);
  tmp_3_4_2 = _mm256_or_si256(_tmp2386_,_tmp2385_);
  _tmp2387_ = _mm256_andnot_si256(a__3,_tmp2241_);
  _tmp2388_ = _mm256_and_si256(tmp_3_3_7,a__3);
  tmp_3_4_3 = _mm256_or_si256(_tmp2388_,_tmp2387_);
  _tmp2389_ = _mm256_andnot_si256(a__2,tmp_3_4_0);
  _tmp2390_ = _mm256_and_si256(tmp_3_4_1,a__2);
  tmp_3_5_0 = _mm256_or_si256(_tmp2390_,_tmp2389_);
  _tmp2391_ = _mm256_andnot_si256(a__2,tmp_3_4_2);
  _tmp2392_ = _mm256_and_si256(tmp_3_4_3,a__2);
  tmp_3_5_1 = _mm256_or_si256(_tmp2392_,_tmp2391_);
  _tmp2393_ = _mm256_andnot_si256(a__1,tmp_3_5_0);
  _tmp2394_ = _mm256_and_si256(tmp_3_5_1,a__1);
  tmp_3_6_0 = _mm256_or_si256(_tmp2394_,_tmp2393_);
  *out__3 = tmp_3_6_0;
  _tmp2491_ = _mm256_andnot_si256(a__4,_tmp2084_);
  tmp_4_3_0 = _mm256_or_si256(_tmp2128_,_tmp2491_);
  _tmp2494_ = _mm256_and_si256(tmp_2_2_2,a__4);
  tmp_4_3_1 = _mm256_or_si256(_tmp2494_,_tmp2119_);
  tmp_4_3_2 = _mm256_or_si256(_tmp2120_,_tmp2239_);
  tmp_4_3_3 = _mm256_or_si256(_tmp2128_,_tmp2241_);
  _tmp2500_ = _mm256_and_si256(tmp_1_2_10,a__4);
  tmp_4_3_4 = _mm256_or_si256(_tmp2500_,_tmp2127_);
  tmp_4_3_7 = _mm256_or_si256(_tmp2248_,_tmp2115_);
  _tmp2507_ = _mm256_andnot_si256(a__3,tmp_4_3_0);
  _tmp2508_ = _mm256_and_si256(tmp_4_3_1,a__3);
  tmp_4_4_0 = _mm256_or_si256(_tmp2508_,_tmp2507_);
  _tmp2509_ = _mm256_andnot_si256(a__3,tmp_4_3_2);
  _tmp2510_ = _mm256_and_si256(tmp_4_3_3,a__3);
  tmp_4_4_1 = _mm256_or_si256(_tmp2510_,_tmp2509_);
  _tmp2511_ = _mm256_andnot_si256(a__3,tmp_4_3_4);
  _tmp2512_ = _mm256_and_si256(tmp_2_3_0,a__3);
  tmp_4_4_2 = _mm256_or_si256(_tmp2512_,_tmp2511_);
  _tmp2513_ = _mm256_andnot_si256(a__3,tmp_1_3_5);
  _tmp2514_ = _mm256_and_si256(tmp_4_3_7,a__3);
  tmp_4_4_3 = _mm256_or_si256(_tmp2514_,_tmp2513_);
  _tmp2515_ = _mm256_andnot_si256(a__2,tmp_4_4_0);
  _tmp2516_ = _mm256_and_si256(tmp_4_4_1,a__2);
  tmp_4_5_0 = _mm256_or_si256(_tmp2516_,_tmp2515_);
  _tmp2517_ = _mm256_andnot_si256(a__2,tmp_4_4_2);
  _tmp2518_ = _mm256_and_si256(tmp_4_4_3,a__2);
  tmp_4_5_1 = _mm256_or_si256(_tmp2518_,_tmp2517_);
  _tmp2519_ = _mm256_andnot_si256(a__1,tmp_4_5_0);
  _tmp2520_ = _mm256_and_si256(tmp_4_5_1,a__1);
  tmp_4_6_0 = _mm256_or_si256(_tmp2520_,_tmp2519_);
  *out__4 = tmp_4_6_0;
}


static void sbox__5 (__m256i a__1,__m256i a__2,__m256i a__3,__m256i a__4,__m256i a__5,__m256i a__6,__m256i* out__1,__m256i* out__2,__m256i* out__3,__m256i* out__4) {
  __m256i _tmp2521_;
  __m256i _tmp2585_;
  __m256i _tmp2586_;
  __m256i _tmp2587_;
  __m256i _tmp2588_;
  __m256i _tmp2591_;
  __m256i _tmp2600_;
  __m256i _tmp2617_;
  __m256i _tmp2618_;
  __m256i _tmp2619_;
  __m256i _tmp2620_;
  __m256i _tmp2621_;
  __m256i _tmp2622_;
  __m256i _tmp2624_;
  __m256i _tmp2625_;
  __m256i _tmp2626_;
  __m256i _tmp2627_;
  __m256i _tmp2628_;
  __m256i _tmp2629_;
  __m256i _tmp2630_;
  __m256i _tmp2633_;
  __m256i _tmp2634_;
  __m256i _tmp2635_;
  __m256i _tmp2636_;
  __m256i _tmp2637_;
  __m256i _tmp2638_;
  __m256i _tmp2639_;
  __m256i _tmp2640_;
  __m256i _tmp2641_;
  __m256i _tmp2642_;
  __m256i _tmp2643_;
  __m256i _tmp2644_;
  __m256i _tmp2645_;
  __m256i _tmp2646_;
  __m256i _tmp2748_;
  __m256i _tmp2750_;
  __m256i _tmp2752_;
  __m256i _tmp2753_;
  __m256i _tmp2754_;
  __m256i _tmp2759_;
  __m256i _tmp2760_;
  __m256i _tmp2761_;
  __m256i _tmp2762_;
  __m256i _tmp2763_;
  __m256i _tmp2764_;
  __m256i _tmp2765_;
  __m256i _tmp2766_;
  __m256i _tmp2767_;
  __m256i _tmp2768_;
  __m256i _tmp2769_;
  __m256i _tmp2770_;
  __m256i _tmp2771_;
  __m256i _tmp2772_;
  __m256i _tmp2873_;
  __m256i _tmp2875_;
  __m256i _tmp2877_;
  __m256i _tmp2879_;
  __m256i _tmp2885_;
  __m256i _tmp2886_;
  __m256i _tmp2887_;
  __m256i _tmp2888_;
  __m256i _tmp2889_;
  __m256i _tmp2890_;
  __m256i _tmp2891_;
  __m256i _tmp2892_;
  __m256i _tmp2893_;
  __m256i _tmp2894_;
  __m256i _tmp2895_;
  __m256i _tmp2896_;
  __m256i _tmp2897_;
  __m256i _tmp2898_;
  __m256i _tmp2997_;
  __m256i _tmp3002_;
  __m256i _tmp3011_;
  __m256i _tmp3012_;
  __m256i _tmp3014_;
  __m256i _tmp3015_;
  __m256i _tmp3016_;
  __m256i _tmp3017_;
  __m256i _tmp3018_;
  __m256i _tmp3019_;
  __m256i _tmp3020_;
  __m256i _tmp3021_;
  __m256i _tmp3022_;
  __m256i _tmp3023_;
  __m256i _tmp3024_;
  __m256i tmp_1_1_0;
  __m256i tmp_1_2_0;
  __m256i tmp_1_2_1;
  __m256i tmp_1_2_2;
  __m256i tmp_1_2_3;
  __m256i tmp_1_2_5;
  __m256i tmp_1_3_0;
  __m256i tmp_1_3_1;
  __m256i tmp_1_3_2;
  __m256i tmp_1_3_3;
  __m256i tmp_1_3_4;
  __m256i tmp_1_3_5;
  __m256i tmp_1_3_6;
  __m256i tmp_1_3_7;
  __m256i tmp_1_4_0;
  __m256i tmp_1_4_1;
  __m256i tmp_1_4_2;
  __m256i tmp_1_4_3;
  __m256i tmp_1_5_0;
  __m256i tmp_1_5_1;
  __m256i tmp_1_6_0;
  __m256i tmp_2_2_5;
  __m256i tmp_2_2_9;
  __m256i tmp_2_3_1;
  __m256i tmp_2_3_2;
  __m256i tmp_2_3_3;
  __m256i tmp_2_3_4;
  __m256i tmp_2_3_5;
  __m256i tmp_2_3_6;
  __m256i tmp_2_3_7;
  __m256i tmp_2_4_0;
  __m256i tmp_2_4_1;
  __m256i tmp_2_4_2;
  __m256i tmp_2_4_3;
  __m256i tmp_2_5_0;
  __m256i tmp_2_5_1;
  __m256i tmp_2_6_0;
  __m256i tmp_3_3_0;
  __m256i tmp_3_3_1;
  __m256i tmp_3_3_2;
  __m256i tmp_3_3_3;
  __m256i tmp_3_3_4;
  __m256i tmp_3_3_5;
  __m256i tmp_3_3_6;
  __m256i tmp_3_3_7;
  __m256i tmp_3_4_0;
  __m256i tmp_3_4_1;
  __m256i tmp_3_4_2;
  __m256i tmp_3_4_3;
  __m256i tmp_3_5_0;
  __m256i tmp_3_5_1;
  __m256i tmp_3_6_0;
  __m256i tmp_4_2_7;
  __m256i tmp_4_3_0;
  __m256i tmp_4_3_1;
  __m256i tmp_4_3_3;
  __m256i tmp_4_3_4;
  __m256i tmp_4_3_5;
  __m256i tmp_4_4_0;
  __m256i tmp_4_4_1;
  __m256i tmp_4_4_2;
  __m256i tmp_4_4_3;
  __m256i tmp_4_5_0;
  __m256i tmp_4_5_1;
  __m256i tmp_4_6_0;

  _tmp2521_ = _mm256_andnot_si256(a__6,_mm256_set1_epi32(-1));
  tmp_1_1_0 = _mm256_or_si256(a__6,_tmp2521_);
  _tmp2585_ = _mm256_andnot_si256(a__5,tmp_1_1_0);
  _tmp2586_ = _mm256_and_si256(a__6,a__5);
  tmp_1_2_0 = _mm256_or_si256(_tmp2586_,_tmp2585_);
  _tmp2587_ = _mm256_andnot_si256(a__5,_tmp2521_);
  _tmp2588_ = _mm256_and_si256(_tmp2521_,a__5);
  tmp_1_2_1 = _mm256_or_si256(_tmp2588_,_tmp2587_);
  tmp_1_2_2 = _mm256_or_si256(_tmp2586_,_tmp2587_);
  _tmp2591_ = _mm256_andnot_si256(a__5,a__6);
  tmp_1_2_3 = _mm256_or_si256(_tmp2588_,_tmp2591_);
  tmp_1_2_5 = _mm256_or_si256(_tmp2586_,_tmp2591_);
  _tmp2600_ = _mm256_and_si256(tmp_1_1_0,a__5);
  _tmp2617_ = _mm256_andnot_si256(a__4,tmp_1_2_0);
  _tmp2618_ = _mm256_and_si256(tmp_1_2_1,a__4);
  tmp_1_3_0 = _mm256_or_si256(_tmp2618_,_tmp2617_);
  _tmp2619_ = _mm256_andnot_si256(a__4,tmp_1_2_2);
  _tmp2620_ = _mm256_and_si256(tmp_1_2_3,a__4);
  tmp_1_3_1 = _mm256_or_si256(_tmp2620_,_tmp2619_);
  _tmp2621_ = _mm256_andnot_si256(a__4,_tmp2588_);
  _tmp2622_ = _mm256_and_si256(tmp_1_2_5,a__4);
  tmp_1_3_2 = _mm256_or_si256(_tmp2622_,_tmp2621_);
  _tmp2624_ = _mm256_and_si256(_tmp2600_,a__4);
  tmp_1_3_3 = _mm256_or_si256(_tmp2624_,_tmp2619_);
  _tmp2625_ = _mm256_andnot_si256(a__4,tmp_1_2_1);
  _tmp2626_ = _mm256_and_si256(tmp_1_2_2,a__4);
  tmp_1_3_4 = _mm256_or_si256(_tmp2626_,_tmp2625_);
  _tmp2627_ = _mm256_andnot_si256(a__4,tmp_1_2_3);
  _tmp2628_ = _mm256_and_si256(tmp_1_2_0,a__4);
  tmp_1_3_5 = _mm256_or_si256(_tmp2628_,_tmp2627_);
  _tmp2629_ = _mm256_andnot_si256(a__4,tmp_1_2_5);
  _tmp2630_ = _mm256_and_si256(_tmp2588_,a__4);
  tmp_1_3_6 = _mm256_or_si256(_tmp2630_,_tmp2629_);
  tmp_1_3_7 = _mm256_or_si256(_tmp2628_,_tmp2621_);
  _tmp2633_ = _mm256_andnot_si256(a__3,tmp_1_3_0);
  _tmp2634_ = _mm256_and_si256(tmp_1_3_1,a__3);
  tmp_1_4_0 = _mm256_or_si256(_tmp2634_,_tmp2633_);
  _tmp2635_ = _mm256_andnot_si256(a__3,tmp_1_3_2);
  _tmp2636_ = _mm256_and_si256(tmp_1_3_3,a__3);
  tmp_1_4_1 = _mm256_or_si256(_tmp2636_,_tmp2635_);
  _tmp2637_ = _mm256_andnot_si256(a__3,tmp_1_3_4);
  _tmp2638_ = _mm256_and_si256(tmp_1_3_5,a__3);
  tmp_1_4_2 = _mm256_or_si256(_tmp2638_,_tmp2637_);
  _tmp2639_ = _mm256_andnot_si256(a__3,tmp_1_3_6);
  _tmp2640_ = _mm256_and_si256(tmp_1_3_7,a__3);
  tmp_1_4_3 = _mm256_or_si256(_tmp2640_,_tmp2639_);
  _tmp2641_ = _mm256_andnot_si256(a__2,tmp_1_4_0);
  _tmp2642_ = _mm256_and_si256(tmp_1_4_1,a__2);
  tmp_1_5_0 = _mm256_or_si256(_tmp2642_,_tmp2641_);
  _tmp2643_ = _mm256_andnot_si256(a__2,tmp_1_4_2);
  _tmp2644_ = _mm256_and_si256(tmp_1_4_3,a__2);
  tmp_1_5_1 = _mm256_or_si256(_tmp2644_,_tmp2643_);
  _tmp2645_ = _mm256_andnot_si256(a__1,tmp_1_5_0);
  _tmp2646_ = _mm256_and_si256(tmp_1_5_1,a__1);
  tmp_1_6_0 = _mm256_or_si256(_tmp2646_,_tmp2645_);
  *out__1 = tmp_1_6_0;
  tmp_2_2_5 = _mm256_or_si256(_tmp2600_,_tmp2591_);
  tmp_2_2_9 = _mm256_or_si256(_tmp2600_,_tmp2587_);
  tmp_2_3_1 = _mm256_or_si256(_tmp2626_,_tmp2629_);
  _tmp2748_ = _mm256_and_si256(tmp_2_2_5,a__4);
  tmp_2_3_2 = _mm256_or_si256(_tmp2748_,_tmp2627_);
  _tmp2750_ = _mm256_and_si256(_tmp2587_,a__4);
  tmp_2_3_3 = _mm256_or_si256(_tmp2750_,_tmp2625_);
  _tmp2752_ = _mm256_and_si256(tmp_2_2_9,a__4);
  tmp_2_3_4 = _mm256_or_si256(_tmp2752_,_tmp2627_);
  _tmp2753_ = _mm256_andnot_si256(a__4,_tmp2586_);
  _tmp2754_ = _mm256_and_si256(_tmp2585_,a__4);
  tmp_2_3_5 = _mm256_or_si256(_tmp2754_,_tmp2753_);
  tmp_2_3_6 = _mm256_or_si256(_tmp2626_,_tmp2619_);
  tmp_2_3_7 = _mm256_or_si256(_tmp2624_,_tmp2627_);
  _tmp2759_ = _mm256_andnot_si256(a__3,tmp_1_3_1);
  _tmp2760_ = _mm256_and_si256(tmp_2_3_1,a__3);
  tmp_2_4_0 = _mm256_or_si256(_tmp2760_,_tmp2759_);
  _tmp2761_ = _mm256_andnot_si256(a__3,tmp_2_3_2);
  _tmp2762_ = _mm256_and_si256(tmp_2_3_3,a__3);
  tmp_2_4_1 = _mm256_or_si256(_tmp2762_,_tmp2761_);
  _tmp2763_ = _mm256_andnot_si256(a__3,tmp_2_3_4);
  _tmp2764_ = _mm256_and_si256(tmp_2_3_5,a__3);
  tmp_2_4_2 = _mm256_or_si256(_tmp2764_,_tmp2763_);
  _tmp2765_ = _mm256_andnot_si256(a__3,tmp_2_3_6);
  _tmp2766_ = _mm256_and_si256(tmp_2_3_7,a__3);
  tmp_2_4_3 = _mm256_or_si256(_tmp2766_,_tmp2765_);
  _tmp2767_ = _mm256_andnot_si256(a__2,tmp_2_4_0);
  _tmp2768_ = _mm256_and_si256(tmp_2_4_1,a__2);
  tmp_2_5_0 = _mm256_or_si256(_tmp2768_,_tmp2767_);
  _tmp2769_ = _mm256_andnot_si256(a__2,tmp_2_4_2);
  _tmp2770_ = _mm256_and_si256(tmp_2_4_3,a__2);
  tmp_2_5_1 = _mm256_or_si256(_tmp2770_,_tmp2769_);
  _tmp2771_ = _mm256_andnot_si256(a__1,tmp_2_5_0);
  _tmp2772_ = _mm256_and_si256(tmp_2_5_1,a__1);
  tmp_2_6_0 = _mm256_or_si256(_tmp2772_,_tmp2771_);
  *out__2 = tmp_2_6_0;
  tmp_3_3_0 = _mm256_or_si256(_tmp2752_,_tmp2629_);
  tmp_3_3_1 = _mm256_or_si256(_tmp2750_,_tmp2627_);
  _tmp2873_ = _mm256_andnot_si256(a__4,_tmp2591_);
  tmp_3_3_2 = _mm256_or_si256(_tmp2626_,_tmp2873_);
  _tmp2875_ = _mm256_andnot_si256(a__4,tmp_2_2_9);
  tmp_3_3_3 = _mm256_or_si256(_tmp2620_,_tmp2875_);
  _tmp2877_ = _mm256_andnot_si256(a__4,_tmp2600_);
  tmp_3_3_4 = _mm256_or_si256(_tmp2754_,_tmp2877_);
  _tmp2879_ = _mm256_andnot_si256(a__4,_tmp2587_);
  tmp_3_3_5 = _mm256_or_si256(_tmp2748_,_tmp2879_);
  tmp_3_3_6 = _mm256_or_si256(_tmp2624_,_tmp2617_);
  tmp_3_3_7 = _mm256_or_si256(_tmp2618_,_tmp2873_);
  _tmp2885_ = _mm256_andnot_si256(a__3,tmp_3_3_0);
  _tmp2886_ = _mm256_and_si256(tmp_3_3_1,a__3);
  tmp_3_4_0 = _mm256_or_si256(_tmp2886_,_tmp2885_);
  _tmp2887_ = _mm256_andnot_si256(a__3,tmp_3_3_2);
  _tmp2888_ = _mm256_and_si256(tmp_3_3_3,a__3);
  tmp_3_4_1 = _mm256_or_si256(_tmp2888_,_tmp2887_);
  _tmp2889_ = _mm256_andnot_si256(a__3,tmp_3_3_4);
  _tmp2890_ = _mm256_and_si256(tmp_3_3_5,a__3);
  tmp_3_4_2 = _mm256_or_si256(_tmp2890_,_tmp2889_);
  _tmp2891_ = _mm256_andnot_si256(a__3,tmp_3_3_6);
  _tmp2892_ = _mm256_and_si256(tmp_3_3_7,a__3);
  tmp_3_4_3 = _mm256_or_si256(_tmp2892_,_tmp2891_);
  _tmp2893_ = _mm256_andnot_si256(a__2,tmp_3_4_0);
  _tmp2894_ = _mm256_and_si256(tmp_3_4_1,a__2);
  tmp_3_5_0 = _mm256_or_si256(_tmp2894_,_tmp2893_);
  _tmp2895_ = _mm256_andnot_si256(a__2,tmp_3_4_2);
  _tmp2896_ = _mm256_and_si256(tmp_3_4_3,a__2);
  tmp_3_5_1 = _mm256_or_si256(_tmp2896_,_tmp2895_);
  _tmp2897_ = _mm256_andnot_si256(a__1,tmp_3_5_0);
  _tmp2898_ = _mm256_and_si256(tmp_3_5_1,a__1);
  tmp_3_6_0 = _mm256_or_si256(_tmp2898_,_tmp2897_);
  *out__3 = tmp_3_6_0;
  tmp_4_2_7 = _mm256_or_si256(_tmp2588_,_tmp2585_);
  tmp_4_3_0 = _mm256_or_si256(_tmp2630_,_tmp2877_);
  _tmp2997_ = _mm256_andnot_si256(a__4,_tmp2585_);
  tmp_4_3_1 = _mm256_or_si256(_tmp2622_,_tmp2997_);
  _tmp3002_ = _mm256_and_si256(tmp_4_2_7,a__4);
  tmp_4_3_3 = _mm256_or_si256(_tmp3002_,_tmp2877_);
  tmp_4_3_4 = _mm256_or_si256(_tmp2618_,_tmp2619_);
  tmp_4_3_5 = _mm256_or_si256(_tmp2620_,_tmp2629_);
  _tmp3011_ = _mm256_andnot_si256(a__3,tmp_4_3_0);
  _tmp3012_ = _mm256_and_si256(tmp_4_3_1,a__3);
  tmp_4_4_0 = _mm256_or_si256(_tmp3012_,_tmp3011_);
  _tmp3014_ = _mm256_and_si256(tmp_4_3_3,a__3);
  tmp_4_4_1 = _mm256_or_si256(_tmp3014_,_tmp2889_);
  _tmp3015_ = _mm256_andnot_si256(a__3,tmp_4_3_4);
  _tmp3016_ = _mm256_and_si256(tmp_4_3_5,a__3);
  tmp_4_4_2 = _mm256_or_si256(_tmp3016_,_tmp3015_);
  _tmp3017_ = _mm256_andnot_si256(a__3,tmp_4_3_1);
  _tmp3018_ = _mm256_and_si256(tmp_1_3_4,a__3);
  tmp_4_4_3 = _mm256_or_si256(_tmp3018_,_tmp3017_);
  _tmp3019_ = _mm256_andnot_si256(a__2,tmp_4_4_0);
  _tmp3020_ = _mm256_and_si256(tmp_4_4_1,a__2);
  tmp_4_5_0 = _mm256_or_si256(_tmp3020_,_tmp3019_);
  _tmp3021_ = _mm256_andnot_si256(a__2,tmp_4_4_2);
  _tmp3022_ = _mm256_and_si256(tmp_4_4_3,a__2);
  tmp_4_5_1 = _mm256_or_si256(_tmp3022_,_tmp3021_);
  _tmp3023_ = _mm256_andnot_si256(a__1,tmp_4_5_0);
  _tmp3024_ = _mm256_and_si256(tmp_4_5_1,a__1);
  tmp_4_6_0 = _mm256_or_si256(_tmp3024_,_tmp3023_);
  *out__4 = tmp_4_6_0;
}


static void sbox__6 (__m256i a__1,__m256i a__2,__m256i a__3,__m256i a__4,__m256i a__5,__m256i a__6,__m256i* out__1,__m256i* out__2,__m256i* out__3,__m256i* out__4) {
  __m256i _tmp3027_;
  __m256i _tmp3089_;
  __m256i _tmp3090_;
  __m256i _tmp3093_;
  __m256i _tmp3094_;
  __m256i _tmp3096_;
  __m256i _tmp3107_;
  __m256i _tmp3121_;
  __m256i _tmp3122_;
  __m256i _tmp3123_;
  __m256i _tmp3124_;
  __m256i _tmp3126_;
  __m256i _tmp3127_;
  __m256i _tmp3128_;
  __m256i _tmp3129_;
  __m256i _tmp3130_;
  __m256i _tmp3131_;
  __m256i _tmp3133_;
  __m256i _tmp3134_;
  __m256i _tmp3135_;
  __m256i _tmp3137_;
  __m256i _tmp3138_;
  __m256i _tmp3139_;
  __m256i _tmp3140_;
  __m256i _tmp3141_;
  __m256i _tmp3142_;
  __m256i _tmp3143_;
  __m256i _tmp3144_;
  __m256i _tmp3145_;
  __m256i _tmp3146_;
  __m256i _tmp3147_;
  __m256i _tmp3148_;
  __m256i _tmp3149_;
  __m256i _tmp3150_;
  __m256i _tmp3247_;
  __m256i _tmp3250_;
  __m256i _tmp3252_;
  __m256i _tmp3262_;
  __m256i _tmp3263_;
  __m256i _tmp3264_;
  __m256i _tmp3265_;
  __m256i _tmp3266_;
  __m256i _tmp3269_;
  __m256i _tmp3270_;
  __m256i _tmp3271_;
  __m256i _tmp3272_;
  __m256i _tmp3274_;
  __m256i _tmp3275_;
  __m256i _tmp3276_;
  __m256i _tmp3373_;
  __m256i _tmp3377_;
  __m256i _tmp3379_;
  __m256i _tmp3381_;
  __m256i _tmp3382_;
  __m256i _tmp3385_;
  __m256i _tmp3389_;
  __m256i _tmp3390_;
  __m256i _tmp3391_;
  __m256i _tmp3392_;
  __m256i _tmp3393_;
  __m256i _tmp3394_;
  __m256i _tmp3395_;
  __m256i _tmp3396_;
  __m256i _tmp3397_;
  __m256i _tmp3398_;
  __m256i _tmp3399_;
  __m256i _tmp3400_;
  __m256i _tmp3401_;
  __m256i _tmp3402_;
  __m256i _tmp3500_;
  __m256i _tmp3504_;
  __m256i _tmp3514_;
  __m256i _tmp3515_;
  __m256i _tmp3516_;
  __m256i _tmp3517_;
  __m256i _tmp3518_;
  __m256i _tmp3520_;
  __m256i _tmp3521_;
  __m256i _tmp3522_;
  __m256i _tmp3523_;
  __m256i _tmp3524_;
  __m256i _tmp3525_;
  __m256i _tmp3526_;
  __m256i _tmp3527_;
  __m256i _tmp3528_;
  __m256i tmp_1_1_7;
  __m256i tmp_1_2_0;
  __m256i tmp_1_2_12;
  __m256i tmp_1_2_2;
  __m256i tmp_1_2_3;
  __m256i tmp_1_2_9;
  __m256i tmp_1_3_0;
  __m256i tmp_1_3_1;
  __m256i tmp_1_3_2;
  __m256i tmp_1_3_3;
  __m256i tmp_1_3_4;
  __m256i tmp_1_3_5;
  __m256i tmp_1_3_6;
  __m256i tmp_1_3_7;
  __m256i tmp_1_4_0;
  __m256i tmp_1_4_1;
  __m256i tmp_1_4_2;
  __m256i tmp_1_4_3;
  __m256i tmp_1_5_0;
  __m256i tmp_1_5_1;
  __m256i tmp_1_6_0;
  __m256i tmp_2_2_5;
  __m256i tmp_2_3_0;
  __m256i tmp_2_3_1;
  __m256i tmp_2_3_2;
  __m256i tmp_2_3_3;
  __m256i tmp_2_3_6;
  __m256i tmp_2_3_7;
  __m256i tmp_2_4_0;
  __m256i tmp_2_4_1;
  __m256i tmp_2_4_3;
  __m256i tmp_2_5_0;
  __m256i tmp_2_5_1;
  __m256i tmp_2_6_0;
  __m256i tmp_3_2_12;
  __m256i tmp_3_2_4;
  __m256i tmp_3_2_8;
  __m256i tmp_3_3_0;
  __m256i tmp_3_3_1;
  __m256i tmp_3_3_2;
  __m256i tmp_3_3_3;
  __m256i tmp_3_3_4;
  __m256i tmp_3_3_6;
  __m256i tmp_3_3_7;
  __m256i tmp_3_4_0;
  __m256i tmp_3_4_1;
  __m256i tmp_3_4_2;
  __m256i tmp_3_4_3;
  __m256i tmp_3_5_0;
  __m256i tmp_3_5_1;
  __m256i tmp_3_6_0;
  __m256i tmp_4_3_0;
  __m256i tmp_4_3_1;
  __m256i tmp_4_3_2;
  __m256i tmp_4_3_3;
  __m256i tmp_4_3_6;
  __m256i tmp_4_3_7;
  __m256i tmp_4_4_0;
  __m256i tmp_4_4_1;
  __m256i tmp_4_4_2;
  __m256i tmp_4_4_3;
  __m256i tmp_4_5_0;
  __m256i tmp_4_5_1;
  __m256i tmp_4_6_0;

  _tmp3027_ = _mm256_andnot_si256(a__6,_mm256_set1_epi32(-1));
  tmp_1_1_7 = _mm256_or_si256(a__6,_tmp3027_);
  _tmp3089_ = _mm256_andnot_si256(a__5,a__6);
  _tmp3090_ = _mm256_and_si256(_tmp3027_,a__5);
  tmp_1_2_0 = _mm256_or_si256(_tmp3090_,_tmp3089_);
  _tmp3093_ = _mm256_andnot_si256(a__5,_tmp3027_);
  _tmp3094_ = _mm256_and_si256(a__6,a__5);
  tmp_1_2_2 = _mm256_or_si256(_tmp3094_,_tmp3093_);
  _tmp3096_ = _mm256_and_si256(tmp_1_1_7,a__5);
  tmp_1_2_3 = _mm256_or_si256(_tmp3096_,_tmp3093_);
  _tmp3107_ = _mm256_andnot_si256(a__5,tmp_1_1_7);
  tmp_1_2_9 = _mm256_or_si256(_tmp3096_,_tmp3107_);
  tmp_1_2_12 = _mm256_or_si256(_tmp3090_,_tmp3107_);
  _tmp3121_ = _mm256_andnot_si256(a__4,tmp_1_2_0);
  _tmp3122_ = _mm256_and_si256(tmp_1_2_0,a__4);
  tmp_1_3_0 = _mm256_or_si256(_tmp3122_,_tmp3121_);
  _tmp3123_ = _mm256_andnot_si256(a__4,tmp_1_2_2);
  _tmp3124_ = _mm256_and_si256(tmp_1_2_3,a__4);
  tmp_1_3_1 = _mm256_or_si256(_tmp3124_,_tmp3123_);
  _tmp3126_ = _mm256_and_si256(tmp_1_2_2,a__4);
  tmp_1_3_2 = _mm256_or_si256(_tmp3126_,_tmp3121_);
  _tmp3127_ = _mm256_andnot_si256(a__4,_tmp3096_);
  _tmp3128_ = _mm256_and_si256(_tmp3089_,a__4);
  tmp_1_3_3 = _mm256_or_si256(_tmp3128_,_tmp3127_);
  _tmp3129_ = _mm256_andnot_si256(a__4,_tmp3094_);
  _tmp3130_ = _mm256_and_si256(tmp_1_2_9,a__4);
  tmp_1_3_4 = _mm256_or_si256(_tmp3130_,_tmp3129_);
  _tmp3131_ = _mm256_andnot_si256(a__4,_tmp3093_);
  tmp_1_3_5 = _mm256_or_si256(_tmp3122_,_tmp3131_);
  _tmp3133_ = _mm256_andnot_si256(a__4,tmp_1_2_12);
  _tmp3134_ = _mm256_and_si256(_tmp3096_,a__4);
  tmp_1_3_6 = _mm256_or_si256(_tmp3134_,_tmp3133_);
  _tmp3135_ = _mm256_andnot_si256(a__4,_tmp3089_);
  tmp_1_3_7 = _mm256_or_si256(_tmp3126_,_tmp3135_);
  _tmp3137_ = _mm256_andnot_si256(a__3,tmp_1_3_0);
  _tmp3138_ = _mm256_and_si256(tmp_1_3_1,a__3);
  tmp_1_4_0 = _mm256_or_si256(_tmp3138_,_tmp3137_);
  _tmp3139_ = _mm256_andnot_si256(a__3,tmp_1_3_2);
  _tmp3140_ = _mm256_and_si256(tmp_1_3_3,a__3);
  tmp_1_4_1 = _mm256_or_si256(_tmp3140_,_tmp3139_);
  _tmp3141_ = _mm256_andnot_si256(a__3,tmp_1_3_4);
  _tmp3142_ = _mm256_and_si256(tmp_1_3_5,a__3);
  tmp_1_4_2 = _mm256_or_si256(_tmp3142_,_tmp3141_);
  _tmp3143_ = _mm256_andnot_si256(a__3,tmp_1_3_6);
  _tmp3144_ = _mm256_and_si256(tmp_1_3_7,a__3);
  tmp_1_4_3 = _mm256_or_si256(_tmp3144_,_tmp3143_);
  _tmp3145_ = _mm256_andnot_si256(a__2,tmp_1_4_0);
  _tmp3146_ = _mm256_and_si256(tmp_1_4_1,a__2);
  tmp_1_5_0 = _mm256_or_si256(_tmp3146_,_tmp3145_);
  _tmp3147_ = _mm256_andnot_si256(a__2,tmp_1_4_2);
  _tmp3148_ = _mm256_and_si256(tmp_1_4_3,a__2);
  tmp_1_5_1 = _mm256_or_si256(_tmp3148_,_tmp3147_);
  _tmp3149_ = _mm256_andnot_si256(a__1,tmp_1_5_0);
  _tmp3150_ = _mm256_and_si256(tmp_1_5_1,a__1);
  tmp_1_6_0 = _mm256_or_si256(_tmp3150_,_tmp3149_);
  *out__1 = tmp_1_6_0;
  tmp_2_2_5 = _mm256_or_si256(_tmp3096_,_tmp3089_);
  _tmp3247_ = _mm256_andnot_si256(a__4,_tmp3107_);
  tmp_2_3_0 = _mm256_or_si256(_tmp3134_,_tmp3247_);
  _tmp3250_ = _mm256_and_si256(_tmp3090_,a__4);
  tmp_2_3_1 = _mm256_or_si256(_tmp3250_,_tmp3247_);
  _tmp3252_ = _mm256_and_si256(tmp_2_2_5,a__4);
  tmp_2_3_2 = _mm256_or_si256(_tmp3252_,_tmp3121_);
  tmp_2_3_3 = _mm256_or_si256(_tmp3126_,_tmp3123_);
  tmp_2_3_6 = _mm256_or_si256(_tmp3126_,_tmp3127_);
  _tmp3262_ = _mm256_and_si256(_tmp3094_,a__4);
  tmp_2_3_7 = _mm256_or_si256(_tmp3262_,_tmp3121_);
  _tmp3263_ = _mm256_andnot_si256(a__3,tmp_2_3_0);
  _tmp3264_ = _mm256_and_si256(tmp_2_3_1,a__3);
  tmp_2_4_0 = _mm256_or_si256(_tmp3264_,_tmp3263_);
  _tmp3265_ = _mm256_andnot_si256(a__3,tmp_2_3_2);
  _tmp3266_ = _mm256_and_si256(tmp_2_3_3,a__3);
  tmp_2_4_1 = _mm256_or_si256(_tmp3266_,_tmp3265_);
  _tmp3269_ = _mm256_andnot_si256(a__3,tmp_2_3_6);
  _tmp3270_ = _mm256_and_si256(tmp_2_3_7,a__3);
  tmp_2_4_3 = _mm256_or_si256(_tmp3270_,_tmp3269_);
  _tmp3271_ = _mm256_andnot_si256(a__2,tmp_2_4_0);
  _tmp3272_ = _mm256_and_si256(tmp_2_4_1,a__2);
  tmp_2_5_0 = _mm256_or_si256(_tmp3272_,_tmp3271_);
  _tmp3274_ = _mm256_and_si256(tmp_2_4_3,a__2);
  tmp_2_5_1 = _mm256_or_si256(_tmp3274_,_tmp3145_);
  _tmp3275_ = _mm256_andnot_si256(a__1,tmp_2_5_0);
  _tmp3276_ = _mm256_and_si256(tmp_2_5_1,a__1);
  tmp_2_6_0 = _mm256_or_si256(_tmp3276_,_tmp3275_);
  *out__2 = tmp_2_6_0;
  tmp_3_2_4 = _mm256_or_si256(_tmp3094_,_tmp3107_);
  tmp_3_2_8 = _mm256_or_si256(_tmp3094_,_tmp3089_);
  tmp_3_2_12 = _mm256_or_si256(_tmp3090_,_tmp3093_);
  _tmp3373_ = _mm256_andnot_si256(a__4,_tmp3090_);
  tmp_3_3_0 = _mm256_or_si256(_tmp3130_,_tmp3373_);
  tmp_3_3_1 = _mm256_or_si256(_tmp3262_,_tmp3131_);
  _tmp3377_ = _mm256_andnot_si256(a__4,tmp_3_2_4);
  tmp_3_3_2 = _mm256_or_si256(_tmp3250_,_tmp3377_);
  _tmp3379_ = _mm256_andnot_si256(a__4,tmp_2_2_5);
  tmp_3_3_3 = _mm256_or_si256(_tmp3126_,_tmp3379_);
  _tmp3381_ = _mm256_andnot_si256(a__4,tmp_3_2_8);
  _tmp3382_ = _mm256_and_si256(_tmp3093_,a__4);
  tmp_3_3_4 = _mm256_or_si256(_tmp3382_,_tmp3381_);
  _tmp3385_ = _mm256_andnot_si256(a__4,tmp_3_2_12);
  tmp_3_3_6 = _mm256_or_si256(_tmp3126_,_tmp3385_);
  tmp_3_3_7 = _mm256_or_si256(_tmp3122_,_tmp3381_);
  _tmp3389_ = _mm256_andnot_si256(a__3,tmp_3_3_0);
  _tmp3390_ = _mm256_and_si256(tmp_3_3_1,a__3);
  tmp_3_4_0 = _mm256_or_si256(_tmp3390_,_tmp3389_);
  _tmp3391_ = _mm256_andnot_si256(a__3,tmp_3_3_2);
  _tmp3392_ = _mm256_and_si256(tmp_3_3_3,a__3);
  tmp_3_4_1 = _mm256_or_si256(_tmp3392_,_tmp3391_);
  _tmp3393_ = _mm256_andnot_si256(a__3,tmp_3_3_4);
  _tmp3394_ = _mm256_and_si256(tmp_3_3_0,a__3);
  tmp_3_4_2 = _mm256_or_si256(_tmp3394_,_tmp3393_);
  _tmp3395_ = _mm256_andnot_si256(a__3,tmp_3_3_6);
  _tmp3396_ = _mm256_and_si256(tmp_3_3_7,a__3);
  tmp_3_4_3 = _mm256_or_si256(_tmp3396_,_tmp3395_);
  _tmp3397_ = _mm256_andnot_si256(a__2,tmp_3_4_0);
  _tmp3398_ = _mm256_and_si256(tmp_3_4_1,a__2);
  tmp_3_5_0 = _mm256_or_si256(_tmp3398_,_tmp3397_);
  _tmp3399_ = _mm256_andnot_si256(a__2,tmp_3_4_2);
  _tmp3400_ = _mm256_and_si256(tmp_3_4_3,a__2);
  tmp_3_5_1 = _mm256_or_si256(_tmp3400_,_tmp3399_);
  _tmp3401_ = _mm256_andnot_si256(a__1,tmp_3_5_0);
  _tmp3402_ = _mm256_and_si256(tmp_3_5_1,a__1);
  tmp_3_6_0 = _mm256_or_si256(_tmp3402_,_tmp3401_);
  *out__3 = tmp_3_6_0;
  _tmp3500_ = _mm256_and_si256(tmp_3_2_8,a__4);
  tmp_4_3_0 = _mm256_or_si256(_tmp3500_,_tmp3121_);
  tmp_4_3_1 = _mm256_or_si256(_tmp3122_,_tmp3123_);
  _tmp3504_ = _mm256_and_si256(tmp_1_2_12,a__4);
  tmp_4_3_2 = _mm256_or_si256(_tmp3504_,_tmp3123_);
  tmp_4_3_3 = _mm256_or_si256(_tmp3250_,_tmp3123_);
  tmp_4_3_6 = _mm256_or_si256(_tmp3262_,_tmp3379_);
  _tmp3514_ = _mm256_and_si256(_tmp3107_,a__4);
  tmp_4_3_7 = _mm256_or_si256(_tmp3514_,_tmp3373_);
  _tmp3515_ = _mm256_andnot_si256(a__3,tmp_4_3_0);
  _tmp3516_ = _mm256_and_si256(tmp_4_3_1,a__3);
  tmp_4_4_0 = _mm256_or_si256(_tmp3516_,_tmp3515_);
  _tmp3517_ = _mm256_andnot_si256(a__3,tmp_4_3_2);
  _tmp3518_ = _mm256_and_si256(tmp_4_3_3,a__3);
  tmp_4_4_1 = _mm256_or_si256(_tmp3518_,_tmp3517_);
  _tmp3520_ = _mm256_and_si256(tmp_1_3_2,a__3);
  tmp_4_4_2 = _mm256_or_si256(_tmp3520_,_tmp3517_);
  _tmp3521_ = _mm256_andnot_si256(a__3,tmp_4_3_6);
  _tmp3522_ = _mm256_and_si256(tmp_4_3_7,a__3);
  tmp_4_4_3 = _mm256_or_si256(_tmp3522_,_tmp3521_);
  _tmp3523_ = _mm256_andnot_si256(a__2,tmp_4_4_0);
  _tmp3524_ = _mm256_and_si256(tmp_4_4_1,a__2);
  tmp_4_5_0 = _mm256_or_si256(_tmp3524_,_tmp3523_);
  _tmp3525_ = _mm256_andnot_si256(a__2,tmp_4_4_2);
  _tmp3526_ = _mm256_and_si256(tmp_4_4_3,a__2);
  tmp_4_5_1 = _mm256_or_si256(_tmp3526_,_tmp3525_);
  _tmp3527_ = _mm256_andnot_si256(a__1,tmp_4_5_0);
  _tmp3528_ = _mm256_and_si256(tmp_4_5_1,a__1);
  tmp_4_6_0 = _mm256_or_si256(_tmp3528_,_tmp3527_);
  *out__4 = tmp_4_6_0;
}


static void sbox__7 (__m256i a__1,__m256i a__2,__m256i a__3,__m256i a__4,__m256i a__5,__m256i a__6,__m256i* out__1,__m256i* out__2,__m256i* out__3,__m256i* out__4) {
  __m256i _tmp3529_;
  __m256i _tmp3593_;
  __m256i _tmp3594_;
  __m256i _tmp3595_;
  __m256i _tmp3597_;
  __m256i _tmp3598_;
  __m256i _tmp3604_;
  __m256i _tmp3625_;
  __m256i _tmp3626_;
  __m256i _tmp3627_;
  __m256i _tmp3628_;
  __m256i _tmp3629_;
  __m256i _tmp3630_;
  __m256i _tmp3631_;
  __m256i _tmp3632_;
  __m256i _tmp3633_;
  __m256i _tmp3634_;
  __m256i _tmp3635_;
  __m256i _tmp3637_;
  __m256i _tmp3638_;
  __m256i _tmp3639_;
  __m256i _tmp3641_;
  __m256i _tmp3642_;
  __m256i _tmp3643_;
  __m256i _tmp3644_;
  __m256i _tmp3645_;
  __m256i _tmp3646_;
  __m256i _tmp3647_;
  __m256i _tmp3648_;
  __m256i _tmp3649_;
  __m256i _tmp3650_;
  __m256i _tmp3651_;
  __m256i _tmp3652_;
  __m256i _tmp3653_;
  __m256i _tmp3654_;
  __m256i _tmp3752_;
  __m256i _tmp3753_;
  __m256i _tmp3754_;
  __m256i _tmp3758_;
  __m256i _tmp3762_;
  __m256i _tmp3763_;
  __m256i _tmp3764_;
  __m256i _tmp3767_;
  __m256i _tmp3768_;
  __m256i _tmp3769_;
  __m256i _tmp3770_;
  __m256i _tmp3771_;
  __m256i _tmp3772_;
  __m256i _tmp3773_;
  __m256i _tmp3774_;
  __m256i _tmp3775_;
  __m256i _tmp3776_;
  __m256i _tmp3777_;
  __m256i _tmp3778_;
  __m256i _tmp3779_;
  __m256i _tmp3780_;
  __m256i _tmp3877_;
  __m256i _tmp3879_;
  __m256i _tmp3882_;
  __m256i _tmp3893_;
  __m256i _tmp3894_;
  __m256i _tmp3895_;
  __m256i _tmp3896_;
  __m256i _tmp3897_;
  __m256i _tmp3898_;
  __m256i _tmp3899_;
  __m256i _tmp3900_;
  __m256i _tmp3901_;
  __m256i _tmp3902_;
  __m256i _tmp3903_;
  __m256i _tmp3904_;
  __m256i _tmp3905_;
  __m256i _tmp3906_;
  __m256i _tmp4003_;
  __m256i _tmp4014_;
  __m256i _tmp4015_;
  __m256i _tmp4019_;
  __m256i _tmp4020_;
  __m256i _tmp4021_;
  __m256i _tmp4022_;
  __m256i _tmp4023_;
  __m256i _tmp4024_;
  __m256i _tmp4025_;
  __m256i _tmp4026_;
  __m256i _tmp4027_;
  __m256i _tmp4028_;
  __m256i _tmp4029_;
  __m256i _tmp4030_;
  __m256i _tmp4031_;
  __m256i _tmp4032_;
  __m256i tmp_1_1_2;
  __m256i tmp_1_2_0;
  __m256i tmp_1_2_1;
  __m256i tmp_1_2_10;
  __m256i tmp_1_2_12;
  __m256i tmp_1_2_2;
  __m256i tmp_1_2_4;
  __m256i tmp_1_3_0;
  __m256i tmp_1_3_1;
  __m256i tmp_1_3_2;
  __m256i tmp_1_3_3;
  __m256i tmp_1_3_4;
  __m256i tmp_1_3_5;
  __m256i tmp_1_3_6;
  __m256i tmp_1_3_7;
  __m256i tmp_1_4_0;
  __m256i tmp_1_4_1;
  __m256i tmp_1_4_2;
  __m256i tmp_1_4_3;
  __m256i tmp_1_5_0;
  __m256i tmp_1_5_1;
  __m256i tmp_1_6_0;
  __m256i tmp_2_2_12;
  __m256i tmp_2_2_2;
  __m256i tmp_2_3_0;
  __m256i tmp_2_3_1;
  __m256i tmp_2_3_2;
  __m256i tmp_2_3_3;
  __m256i tmp_2_3_4;
  __m256i tmp_2_3_5;
  __m256i tmp_2_3_6;
  __m256i tmp_2_3_7;
  __m256i tmp_2_4_0;
  __m256i tmp_2_4_1;
  __m256i tmp_2_4_2;
  __m256i tmp_2_4_3;
  __m256i tmp_2_5_0;
  __m256i tmp_2_5_1;
  __m256i tmp_2_6_0;
  __m256i tmp_3_2_2;
  __m256i tmp_3_3_1;
  __m256i tmp_3_3_2;
  __m256i tmp_3_3_3;
  __m256i tmp_3_3_4;
  __m256i tmp_3_3_5;
  __m256i tmp_3_4_0;
  __m256i tmp_3_4_1;
  __m256i tmp_3_4_2;
  __m256i tmp_3_4_3;
  __m256i tmp_3_5_0;
  __m256i tmp_3_5_1;
  __m256i tmp_3_6_0;
  __m256i tmp_4_3_0;
  __m256i tmp_4_3_1;
  __m256i tmp_4_3_2;
  __m256i tmp_4_3_3;
  __m256i tmp_4_3_4;
  __m256i tmp_4_3_5;
  __m256i tmp_4_3_6;
  __m256i tmp_4_3_7;
  __m256i tmp_4_4_0;
  __m256i tmp_4_4_1;
  __m256i tmp_4_4_2;
  __m256i tmp_4_4_3;
  __m256i tmp_4_5_0;
  __m256i tmp_4_5_1;
  __m256i tmp_4_6_0;

  _tmp3529_ = _mm256_andnot_si256(a__6,_mm256_set1_epi32(-1));
  tmp_1_1_2 = _mm256_or_si256(a__6,_tmp3529_);
  _tmp3593_ = _mm256_andnot_si256(a__5,_tmp3529_);
  _tmp3594_ = _mm256_and_si256(a__6,a__5);
  tmp_1_2_0 = _mm256_or_si256(_tmp3594_,_tmp3593_);
  _tmp3595_ = _mm256_andnot_si256(a__5,tmp_1_1_2);
  tmp_1_2_1 = _mm256_or_si256(_tmp3594_,_tmp3595_);
  _tmp3597_ = _mm256_andnot_si256(a__5,a__6);
  _tmp3598_ = _mm256_and_si256(_tmp3529_,a__5);
  tmp_1_2_2 = _mm256_or_si256(_tmp3598_,_tmp3597_);
  tmp_1_2_4 = _mm256_or_si256(_tmp3598_,_tmp3595_);
  _tmp3604_ = _mm256_and_si256(tmp_1_1_2,a__5);
  tmp_1_2_10 = _mm256_or_si256(_tmp3604_,_tmp3593_);
  tmp_1_2_12 = _mm256_or_si256(_tmp3594_,_tmp3597_);
  _tmp3625_ = _mm256_andnot_si256(a__4,tmp_1_2_0);
  _tmp3626_ = _mm256_and_si256(tmp_1_2_1,a__4);
  tmp_1_3_0 = _mm256_or_si256(_tmp3626_,_tmp3625_);
  _tmp3627_ = _mm256_andnot_si256(a__4,tmp_1_2_2);
  _tmp3628_ = _mm256_and_si256(_tmp3593_,a__4);
  tmp_1_3_1 = _mm256_or_si256(_tmp3628_,_tmp3627_);
  _tmp3629_ = _mm256_andnot_si256(a__4,tmp_1_2_4);
  _tmp3630_ = _mm256_and_si256(_tmp3604_,a__4);
  tmp_1_3_2 = _mm256_or_si256(_tmp3630_,_tmp3629_);
  _tmp3631_ = _mm256_andnot_si256(a__4,_tmp3594_);
  _tmp3632_ = _mm256_and_si256(_tmp3595_,a__4);
  tmp_1_3_3 = _mm256_or_si256(_tmp3632_,_tmp3631_);
  _tmp3633_ = _mm256_andnot_si256(a__4,_tmp3598_);
  _tmp3634_ = _mm256_and_si256(_tmp3597_,a__4);
  tmp_1_3_4 = _mm256_or_si256(_tmp3634_,_tmp3633_);
  _tmp3635_ = _mm256_andnot_si256(a__4,tmp_1_2_10);
  tmp_1_3_5 = _mm256_or_si256(_tmp3626_,_tmp3635_);
  _tmp3637_ = _mm256_andnot_si256(a__4,tmp_1_2_12);
  _tmp3638_ = _mm256_and_si256(tmp_1_2_4,a__4);
  tmp_1_3_6 = _mm256_or_si256(_tmp3638_,_tmp3637_);
  _tmp3639_ = _mm256_andnot_si256(a__4,_tmp3593_);
  tmp_1_3_7 = _mm256_or_si256(_tmp3630_,_tmp3639_);
  _tmp3641_ = _mm256_andnot_si256(a__3,tmp_1_3_0);
  _tmp3642_ = _mm256_and_si256(tmp_1_3_1,a__3);
  tmp_1_4_0 = _mm256_or_si256(_tmp3642_,_tmp3641_);
  _tmp3643_ = _mm256_andnot_si256(a__3,tmp_1_3_2);
  _tmp3644_ = _mm256_and_si256(tmp_1_3_3,a__3);
  tmp_1_4_1 = _mm256_or_si256(_tmp3644_,_tmp3643_);
  _tmp3645_ = _mm256_andnot_si256(a__3,tmp_1_3_4);
  _tmp3646_ = _mm256_and_si256(tmp_1_3_5,a__3);
  tmp_1_4_2 = _mm256_or_si256(_tmp3646_,_tmp3645_);
  _tmp3647_ = _mm256_andnot_si256(a__3,tmp_1_3_6);
  _tmp3648_ = _mm256_and_si256(tmp_1_3_7,a__3);
  tmp_1_4_3 = _mm256_or_si256(_tmp3648_,_tmp3647_);
  _tmp3649_ = _mm256_andnot_si256(a__2,tmp_1_4_0);
  _tmp3650_ = _mm256_and_si256(tmp_1_4_1,a__2);
  tmp_1_5_0 = _mm256_or_si256(_tmp3650_,_tmp3649_);
  _tmp3651_ = _mm256_andnot_si256(a__2,tmp_1_4_2);
  _tmp3652_ = _mm256_and_si256(tmp_1_4_3,a__2);
  tmp_1_5_1 = _mm256_or_si256(_tmp3652_,_tmp3651_);
  _tmp3653_ = _mm256_andnot_si256(a__1,tmp_1_5_0);
  _tmp3654_ = _mm256_and_si256(tmp_1_5_1,a__1);
  tmp_1_6_0 = _mm256_or_si256(_tmp3654_,_tmp3653_);
  *out__1 = tmp_1_6_0;
  tmp_2_2_2 = _mm256_or_si256(_tmp3598_,_tmp3593_);
  tmp_2_2_12 = _mm256_or_si256(_tmp3604_,_tmp3597_);
  _tmp3752_ = _mm256_and_si256(tmp_1_2_2,a__4);
  tmp_2_3_0 = _mm256_or_si256(_tmp3752_,_tmp3625_);
  _tmp3753_ = _mm256_andnot_si256(a__4,tmp_2_2_2);
  _tmp3754_ = _mm256_and_si256(tmp_1_2_12,a__4);
  tmp_2_3_1 = _mm256_or_si256(_tmp3754_,_tmp3753_);
  tmp_2_3_2 = _mm256_or_si256(_tmp3752_,_tmp3637_);
  _tmp3758_ = _mm256_and_si256(tmp_2_2_2,a__4);
  tmp_2_3_3 = _mm256_or_si256(_tmp3758_,_tmp3625_);
  tmp_2_3_4 = _mm256_or_si256(_tmp3626_,_tmp3639_);
  _tmp3762_ = _mm256_and_si256(tmp_1_2_0,a__4);
  tmp_2_3_5 = _mm256_or_si256(_tmp3762_,_tmp3627_);
  _tmp3763_ = _mm256_andnot_si256(a__4,tmp_2_2_12);
  _tmp3764_ = _mm256_and_si256(_tmp3598_,a__4);
  tmp_2_3_6 = _mm256_or_si256(_tmp3764_,_tmp3763_);
  tmp_2_3_7 = _mm256_or_si256(_tmp3632_,_tmp3625_);
  _tmp3767_ = _mm256_andnot_si256(a__3,tmp_2_3_0);
  _tmp3768_ = _mm256_and_si256(tmp_2_3_1,a__3);
  tmp_2_4_0 = _mm256_or_si256(_tmp3768_,_tmp3767_);
  _tmp3769_ = _mm256_andnot_si256(a__3,tmp_2_3_2);
  _tmp3770_ = _mm256_and_si256(tmp_2_3_3,a__3);
  tmp_2_4_1 = _mm256_or_si256(_tmp3770_,_tmp3769_);
  _tmp3771_ = _mm256_andnot_si256(a__3,tmp_2_3_4);
  _tmp3772_ = _mm256_and_si256(tmp_2_3_5,a__3);
  tmp_2_4_2 = _mm256_or_si256(_tmp3772_,_tmp3771_);
  _tmp3773_ = _mm256_andnot_si256(a__3,tmp_2_3_6);
  _tmp3774_ = _mm256_and_si256(tmp_2_3_7,a__3);
  tmp_2_4_3 = _mm256_or_si256(_tmp3774_,_tmp3773_);
  _tmp3775_ = _mm256_andnot_si256(a__2,tmp_2_4_0);
  _tmp3776_ = _mm256_and_si256(tmp_2_4_1,a__2);
  tmp_2_5_0 = _mm256_or_si256(_tmp3776_,_tmp3775_);
  _tmp3777_ = _mm256_andnot_si256(a__2,tmp_2_4_2);
  _tmp3778_ = _mm256_and_si256(tmp_2_4_3,a__2);
  tmp_2_5_1 = _mm256_or_si256(_tmp3778_,_tmp3777_);
  _tmp3779_ = _mm256_andnot_si256(a__1,tmp_2_5_0);
  _tmp3780_ = _mm256_and_si256(tmp_2_5_1,a__1);
  tmp_2_6_0 = _mm256_or_si256(_tmp3780_,_tmp3779_);
  *out__2 = tmp_2_6_0;
  tmp_3_2_2 = _mm256_or_si256(_tmp3604_,_tmp3595_);
  _tmp3877_ = _mm256_andnot_si256(a__4,_tmp3604_);
  _tmp3879_ = _mm256_andnot_si256(a__4,tmp_3_2_2);
  tmp_3_3_1 = _mm256_or_si256(_tmp3632_,_tmp3879_);
  _tmp3882_ = _mm256_and_si256(tmp_3_2_2,a__4);
  tmp_3_3_2 = _mm256_or_si256(_tmp3882_,_tmp3639_);
  tmp_3_3_3 = _mm256_or_si256(_tmp3630_,_tmp3631_);
  tmp_3_3_4 = _mm256_or_si256(_tmp3754_,_tmp3629_);
  tmp_3_3_5 = _mm256_or_si256(_tmp3758_,_tmp3631_);
  _tmp3893_ = _mm256_andnot_si256(a__3,_tmp3877_);
  _tmp3894_ = _mm256_and_si256(tmp_3_3_1,a__3);
  tmp_3_4_0 = _mm256_or_si256(_tmp3894_,_tmp3893_);
  _tmp3895_ = _mm256_andnot_si256(a__3,tmp_3_3_2);
  _tmp3896_ = _mm256_and_si256(tmp_3_3_3,a__3);
  tmp_3_4_1 = _mm256_or_si256(_tmp3896_,_tmp3895_);
  _tmp3897_ = _mm256_andnot_si256(a__3,tmp_3_3_4);
  _tmp3898_ = _mm256_and_si256(tmp_3_3_5,a__3);
  tmp_3_4_2 = _mm256_or_si256(_tmp3898_,_tmp3897_);
  _tmp3899_ = _mm256_andnot_si256(a__3,tmp_1_3_1);
  _tmp3900_ = _mm256_and_si256(tmp_3_3_4,a__3);
  tmp_3_4_3 = _mm256_or_si256(_tmp3900_,_tmp3899_);
  _tmp3901_ = _mm256_andnot_si256(a__2,tmp_3_4_0);
  _tmp3902_ = _mm256_and_si256(tmp_3_4_1,a__2);
  tmp_3_5_0 = _mm256_or_si256(_tmp3902_,_tmp3901_);
  _tmp3903_ = _mm256_andnot_si256(a__2,tmp_3_4_2);
  _tmp3904_ = _mm256_and_si256(tmp_3_4_3,a__2);
  tmp_3_5_1 = _mm256_or_si256(_tmp3904_,_tmp3903_);
  _tmp3905_ = _mm256_andnot_si256(a__1,tmp_3_5_0);
  _tmp3906_ = _mm256_and_si256(tmp_3_5_1,a__1);
  tmp_3_6_0 = _mm256_or_si256(_tmp3906_,_tmp3905_);
  *out__3 = tmp_3_6_0;
  _tmp4003_ = _mm256_andnot_si256(a__4,tmp_1_2_1);
  tmp_4_3_0 = _mm256_or_si256(_tmp3634_,_tmp4003_);
  tmp_4_3_1 = _mm256_or_si256(_tmp3638_,_tmp3877_);
  tmp_4_3_2 = _mm256_or_si256(_tmp3762_,_tmp3877_);
  tmp_4_3_3 = _mm256_or_si256(_tmp3752_,_tmp3639_);
  tmp_4_3_4 = _mm256_or_si256(_tmp3630_,_tmp3635_);
  _tmp4014_ = _mm256_and_si256(_tmp3594_,a__4);
  tmp_4_3_5 = _mm256_or_si256(_tmp4014_,_tmp3639_);
  _tmp4015_ = _mm256_andnot_si256(a__4,_tmp3597_);
  tmp_4_3_6 = _mm256_or_si256(_tmp3752_,_tmp4015_);
  tmp_4_3_7 = _mm256_or_si256(_tmp3762_,_tmp3879_);
  _tmp4019_ = _mm256_andnot_si256(a__3,tmp_4_3_0);
  _tmp4020_ = _mm256_and_si256(tmp_4_3_1,a__3);
  tmp_4_4_0 = _mm256_or_si256(_tmp4020_,_tmp4019_);
  _tmp4021_ = _mm256_andnot_si256(a__3,tmp_4_3_2);
  _tmp4022_ = _mm256_and_si256(tmp_4_3_3,a__3);
  tmp_4_4_1 = _mm256_or_si256(_tmp4022_,_tmp4021_);
  _tmp4023_ = _mm256_andnot_si256(a__3,tmp_4_3_4);
  _tmp4024_ = _mm256_and_si256(tmp_4_3_5,a__3);
  tmp_4_4_2 = _mm256_or_si256(_tmp4024_,_tmp4023_);
  _tmp4025_ = _mm256_andnot_si256(a__3,tmp_4_3_6);
  _tmp4026_ = _mm256_and_si256(tmp_4_3_7,a__3);
  tmp_4_4_3 = _mm256_or_si256(_tmp4026_,_tmp4025_);
  _tmp4027_ = _mm256_andnot_si256(a__2,tmp_4_4_0);
  _tmp4028_ = _mm256_and_si256(tmp_4_4_1,a__2);
  tmp_4_5_0 = _mm256_or_si256(_tmp4028_,_tmp4027_);
  _tmp4029_ = _mm256_andnot_si256(a__2,tmp_4_4_2);
  _tmp4030_ = _mm256_and_si256(tmp_4_4_3,a__2);
  tmp_4_5_1 = _mm256_or_si256(_tmp4030_,_tmp4029_);
  _tmp4031_ = _mm256_andnot_si256(a__1,tmp_4_5_0);
  _tmp4032_ = _mm256_and_si256(tmp_4_5_1,a__1);
  tmp_4_6_0 = _mm256_or_si256(_tmp4032_,_tmp4031_);
  *out__4 = tmp_4_6_0;
}


void des__ (__m256i plaintext[64],__m256i key[64],__m256i ciphered[64]) {
  __m256i des_single__0_sbox_in__0__1;
  __m256i des_single__0_sbox_in__0__2;
  __m256i des_single__0_sbox_in__0__3;
  __m256i des_single__0_sbox_in__0__4;
  __m256i des_single__0_sbox_in__0__5;
  __m256i des_single__0_sbox_in__0__6;
  __m256i des_single__0_sbox_in__1__1;
  __m256i des_single__0_sbox_in__1__2;
  __m256i des_single__0_sbox_in__1__3;
  __m256i des_single__0_sbox_in__1__4;
  __m256i des_single__0_sbox_in__1__5;
  __m256i des_single__0_sbox_in__1__6;
  __m256i des_single__0_sbox_in__2__1;
  __m256i des_single__0_sbox_in__2__2;
  __m256i des_single__0_sbox_in__2__3;
  __m256i des_single__0_sbox_in__2__4;
  __m256i des_single__0_sbox_in__2__5;
  __m256i des_single__0_sbox_in__2__6;
  __m256i des_single__0_sbox_in__3__1;
  __m256i des_single__0_sbox_in__3__2;
  __m256i des_single__0_sbox_in__3__3;
  __m256i des_single__0_sbox_in__3__4;
  __m256i des_single__0_sbox_in__3__5;
  __m256i des_single__0_sbox_in__3__6;
  __m256i des_single__0_sbox_in__4__1;
  __m256i des_single__0_sbox_in__4__2;
  __m256i des_single__0_sbox_in__4__3;
  __m256i des_single__0_sbox_in__4__4;
  __m256i des_single__0_sbox_in__4__5;
  __m256i des_single__0_sbox_in__4__6;
  __m256i des_single__0_sbox_in__5__1;
  __m256i des_single__0_sbox_in__5__2;
  __m256i des_single__0_sbox_in__5__3;
  __m256i des_single__0_sbox_in__5__4;
  __m256i des_single__0_sbox_in__5__5;
  __m256i des_single__0_sbox_in__5__6;
  __m256i des_single__0_sbox_in__6__1;
  __m256i des_single__0_sbox_in__6__2;
  __m256i des_single__0_sbox_in__6__3;
  __m256i des_single__0_sbox_in__6__4;
  __m256i des_single__0_sbox_in__6__5;
  __m256i des_single__0_sbox_in__6__6;
  __m256i des_single__0_sbox_in__7__1;
  __m256i des_single__0_sbox_in__7__2;
  __m256i des_single__0_sbox_in__7__3;
  __m256i des_single__0_sbox_in__7__4;
  __m256i des_single__0_sbox_in__7__5;
  __m256i des_single__0_sbox_in__7__6;
  __m256i des_single__10_sbox_in__0__1;
  __m256i des_single__10_sbox_in__0__2;
  __m256i des_single__10_sbox_in__0__3;
  __m256i des_single__10_sbox_in__0__4;
  __m256i des_single__10_sbox_in__0__5;
  __m256i des_single__10_sbox_in__0__6;
  __m256i des_single__10_sbox_in__1__1;
  __m256i des_single__10_sbox_in__1__2;
  __m256i des_single__10_sbox_in__1__3;
  __m256i des_single__10_sbox_in__1__4;
  __m256i des_single__10_sbox_in__1__5;
  __m256i des_single__10_sbox_in__1__6;
  __m256i des_single__10_sbox_in__2__1;
  __m256i des_single__10_sbox_in__2__2;
  __m256i des_single__10_sbox_in__2__3;
  __m256i des_single__10_sbox_in__2__4;
  __m256i des_single__10_sbox_in__2__5;
  __m256i des_single__10_sbox_in__2__6;
  __m256i des_single__10_sbox_in__3__1;
  __m256i des_single__10_sbox_in__3__2;
  __m256i des_single__10_sbox_in__3__3;
  __m256i des_single__10_sbox_in__3__4;
  __m256i des_single__10_sbox_in__3__5;
  __m256i des_single__10_sbox_in__3__6;
  __m256i des_single__10_sbox_in__4__1;
  __m256i des_single__10_sbox_in__4__2;
  __m256i des_single__10_sbox_in__4__3;
  __m256i des_single__10_sbox_in__4__4;
  __m256i des_single__10_sbox_in__4__5;
  __m256i des_single__10_sbox_in__4__6;
  __m256i des_single__10_sbox_in__5__1;
  __m256i des_single__10_sbox_in__5__2;
  __m256i des_single__10_sbox_in__5__3;
  __m256i des_single__10_sbox_in__5__4;
  __m256i des_single__10_sbox_in__5__5;
  __m256i des_single__10_sbox_in__5__6;
  __m256i des_single__10_sbox_in__6__1;
  __m256i des_single__10_sbox_in__6__2;
  __m256i des_single__10_sbox_in__6__3;
  __m256i des_single__10_sbox_in__6__4;
  __m256i des_single__10_sbox_in__6__5;
  __m256i des_single__10_sbox_in__6__6;
  __m256i des_single__10_sbox_in__7__1;
  __m256i des_single__10_sbox_in__7__2;
  __m256i des_single__10_sbox_in__7__3;
  __m256i des_single__10_sbox_in__7__4;
  __m256i des_single__10_sbox_in__7__5;
  __m256i des_single__10_sbox_in__7__6;
  __m256i des_single__11_sbox_in__0__1;
  __m256i des_single__11_sbox_in__0__2;
  __m256i des_single__11_sbox_in__0__3;
  __m256i des_single__11_sbox_in__0__4;
  __m256i des_single__11_sbox_in__0__5;
  __m256i des_single__11_sbox_in__0__6;
  __m256i des_single__11_sbox_in__1__1;
  __m256i des_single__11_sbox_in__1__2;
  __m256i des_single__11_sbox_in__1__3;
  __m256i des_single__11_sbox_in__1__4;
  __m256i des_single__11_sbox_in__1__5;
  __m256i des_single__11_sbox_in__1__6;
  __m256i des_single__11_sbox_in__2__1;
  __m256i des_single__11_sbox_in__2__2;
  __m256i des_single__11_sbox_in__2__3;
  __m256i des_single__11_sbox_in__2__4;
  __m256i des_single__11_sbox_in__2__5;
  __m256i des_single__11_sbox_in__2__6;
  __m256i des_single__11_sbox_in__3__1;
  __m256i des_single__11_sbox_in__3__2;
  __m256i des_single__11_sbox_in__3__3;
  __m256i des_single__11_sbox_in__3__4;
  __m256i des_single__11_sbox_in__3__5;
  __m256i des_single__11_sbox_in__3__6;
  __m256i des_single__11_sbox_in__4__1;
  __m256i des_single__11_sbox_in__4__2;
  __m256i des_single__11_sbox_in__4__3;
  __m256i des_single__11_sbox_in__4__4;
  __m256i des_single__11_sbox_in__4__5;
  __m256i des_single__11_sbox_in__4__6;
  __m256i des_single__11_sbox_in__5__1;
  __m256i des_single__11_sbox_in__5__2;
  __m256i des_single__11_sbox_in__5__3;
  __m256i des_single__11_sbox_in__5__4;
  __m256i des_single__11_sbox_in__5__5;
  __m256i des_single__11_sbox_in__5__6;
  __m256i des_single__11_sbox_in__6__1;
  __m256i des_single__11_sbox_in__6__2;
  __m256i des_single__11_sbox_in__6__3;
  __m256i des_single__11_sbox_in__6__4;
  __m256i des_single__11_sbox_in__6__5;
  __m256i des_single__11_sbox_in__6__6;
  __m256i des_single__11_sbox_in__7__1;
  __m256i des_single__11_sbox_in__7__2;
  __m256i des_single__11_sbox_in__7__3;
  __m256i des_single__11_sbox_in__7__4;
  __m256i des_single__11_sbox_in__7__5;
  __m256i des_single__11_sbox_in__7__6;
  __m256i des_single__12_sbox_in__0__1;
  __m256i des_single__12_sbox_in__0__2;
  __m256i des_single__12_sbox_in__0__3;
  __m256i des_single__12_sbox_in__0__4;
  __m256i des_single__12_sbox_in__0__5;
  __m256i des_single__12_sbox_in__0__6;
  __m256i des_single__12_sbox_in__1__1;
  __m256i des_single__12_sbox_in__1__2;
  __m256i des_single__12_sbox_in__1__3;
  __m256i des_single__12_sbox_in__1__4;
  __m256i des_single__12_sbox_in__1__5;
  __m256i des_single__12_sbox_in__1__6;
  __m256i des_single__12_sbox_in__2__1;
  __m256i des_single__12_sbox_in__2__2;
  __m256i des_single__12_sbox_in__2__3;
  __m256i des_single__12_sbox_in__2__4;
  __m256i des_single__12_sbox_in__2__5;
  __m256i des_single__12_sbox_in__2__6;
  __m256i des_single__12_sbox_in__3__1;
  __m256i des_single__12_sbox_in__3__2;
  __m256i des_single__12_sbox_in__3__3;
  __m256i des_single__12_sbox_in__3__4;
  __m256i des_single__12_sbox_in__3__5;
  __m256i des_single__12_sbox_in__3__6;
  __m256i des_single__12_sbox_in__4__1;
  __m256i des_single__12_sbox_in__4__2;
  __m256i des_single__12_sbox_in__4__3;
  __m256i des_single__12_sbox_in__4__4;
  __m256i des_single__12_sbox_in__4__5;
  __m256i des_single__12_sbox_in__4__6;
  __m256i des_single__12_sbox_in__5__1;
  __m256i des_single__12_sbox_in__5__2;
  __m256i des_single__12_sbox_in__5__3;
  __m256i des_single__12_sbox_in__5__4;
  __m256i des_single__12_sbox_in__5__5;
  __m256i des_single__12_sbox_in__5__6;
  __m256i des_single__12_sbox_in__6__1;
  __m256i des_single__12_sbox_in__6__2;
  __m256i des_single__12_sbox_in__6__3;
  __m256i des_single__12_sbox_in__6__4;
  __m256i des_single__12_sbox_in__6__5;
  __m256i des_single__12_sbox_in__6__6;
  __m256i des_single__12_sbox_in__7__1;
  __m256i des_single__12_sbox_in__7__2;
  __m256i des_single__12_sbox_in__7__3;
  __m256i des_single__12_sbox_in__7__4;
  __m256i des_single__12_sbox_in__7__5;
  __m256i des_single__12_sbox_in__7__6;
  __m256i des_single__13_sbox_in__0__1;
  __m256i des_single__13_sbox_in__0__2;
  __m256i des_single__13_sbox_in__0__3;
  __m256i des_single__13_sbox_in__0__4;
  __m256i des_single__13_sbox_in__0__5;
  __m256i des_single__13_sbox_in__0__6;
  __m256i des_single__13_sbox_in__1__1;
  __m256i des_single__13_sbox_in__1__2;
  __m256i des_single__13_sbox_in__1__3;
  __m256i des_single__13_sbox_in__1__4;
  __m256i des_single__13_sbox_in__1__5;
  __m256i des_single__13_sbox_in__1__6;
  __m256i des_single__13_sbox_in__2__1;
  __m256i des_single__13_sbox_in__2__2;
  __m256i des_single__13_sbox_in__2__3;
  __m256i des_single__13_sbox_in__2__4;
  __m256i des_single__13_sbox_in__2__5;
  __m256i des_single__13_sbox_in__2__6;
  __m256i des_single__13_sbox_in__3__1;
  __m256i des_single__13_sbox_in__3__2;
  __m256i des_single__13_sbox_in__3__3;
  __m256i des_single__13_sbox_in__3__4;
  __m256i des_single__13_sbox_in__3__5;
  __m256i des_single__13_sbox_in__3__6;
  __m256i des_single__13_sbox_in__4__1;
  __m256i des_single__13_sbox_in__4__2;
  __m256i des_single__13_sbox_in__4__3;
  __m256i des_single__13_sbox_in__4__4;
  __m256i des_single__13_sbox_in__4__5;
  __m256i des_single__13_sbox_in__4__6;
  __m256i des_single__13_sbox_in__5__1;
  __m256i des_single__13_sbox_in__5__2;
  __m256i des_single__13_sbox_in__5__3;
  __m256i des_single__13_sbox_in__5__4;
  __m256i des_single__13_sbox_in__5__5;
  __m256i des_single__13_sbox_in__5__6;
  __m256i des_single__13_sbox_in__6__1;
  __m256i des_single__13_sbox_in__6__2;
  __m256i des_single__13_sbox_in__6__3;
  __m256i des_single__13_sbox_in__6__4;
  __m256i des_single__13_sbox_in__6__5;
  __m256i des_single__13_sbox_in__6__6;
  __m256i des_single__13_sbox_in__7__1;
  __m256i des_single__13_sbox_in__7__2;
  __m256i des_single__13_sbox_in__7__3;
  __m256i des_single__13_sbox_in__7__4;
  __m256i des_single__13_sbox_in__7__5;
  __m256i des_single__13_sbox_in__7__6;
  __m256i des_single__14_sbox_in__0__1;
  __m256i des_single__14_sbox_in__0__2;
  __m256i des_single__14_sbox_in__0__3;
  __m256i des_single__14_sbox_in__0__4;
  __m256i des_single__14_sbox_in__0__5;
  __m256i des_single__14_sbox_in__0__6;
  __m256i des_single__14_sbox_in__1__1;
  __m256i des_single__14_sbox_in__1__2;
  __m256i des_single__14_sbox_in__1__3;
  __m256i des_single__14_sbox_in__1__4;
  __m256i des_single__14_sbox_in__1__5;
  __m256i des_single__14_sbox_in__2__3;
  __m256i des_single__14_sbox_in__2__4;
  __m256i des_single__14_sbox_in__2__6;
  __m256i des_single__14_sbox_in__3__1;
  __m256i des_single__14_sbox_in__3__2;
  __m256i des_single__14_sbox_in__3__3;
  __m256i des_single__14_sbox_in__3__4;
  __m256i des_single__14_sbox_in__3__5;
  __m256i des_single__14_sbox_in__3__6;
  __m256i des_single__14_sbox_in__4__1;
  __m256i des_single__14_sbox_in__4__2;
  __m256i des_single__14_sbox_in__4__3;
  __m256i des_single__14_sbox_in__4__4;
  __m256i des_single__14_sbox_in__4__5;
  __m256i des_single__14_sbox_in__5__1;
  __m256i des_single__14_sbox_in__5__2;
  __m256i des_single__14_sbox_in__5__3;
  __m256i des_single__14_sbox_in__5__4;
  __m256i des_single__14_sbox_in__5__5;
  __m256i des_single__14_sbox_in__5__6;
  __m256i des_single__14_sbox_in__6__2;
  __m256i des_single__14_sbox_in__6__4;
  __m256i des_single__14_sbox_in__6__5;
  __m256i des_single__14_sbox_in__6__6;
  __m256i des_single__14_sbox_in__7__1;
  __m256i des_single__14_sbox_in__7__2;
  __m256i des_single__14_sbox_in__7__3;
  __m256i des_single__14_sbox_in__7__5;
  __m256i des_single__14_sbox_in__7__6;
  __m256i des_single__1_sbox_in__0__1;
  __m256i des_single__1_sbox_in__0__2;
  __m256i des_single__1_sbox_in__0__3;
  __m256i des_single__1_sbox_in__0__4;
  __m256i des_single__1_sbox_in__0__5;
  __m256i des_single__1_sbox_in__0__6;
  __m256i des_single__1_sbox_in__1__1;
  __m256i des_single__1_sbox_in__1__2;
  __m256i des_single__1_sbox_in__1__3;
  __m256i des_single__1_sbox_in__1__4;
  __m256i des_single__1_sbox_in__1__5;
  __m256i des_single__1_sbox_in__1__6;
  __m256i des_single__1_sbox_in__2__1;
  __m256i des_single__1_sbox_in__2__2;
  __m256i des_single__1_sbox_in__2__3;
  __m256i des_single__1_sbox_in__2__4;
  __m256i des_single__1_sbox_in__2__5;
  __m256i des_single__1_sbox_in__2__6;
  __m256i des_single__1_sbox_in__3__1;
  __m256i des_single__1_sbox_in__3__2;
  __m256i des_single__1_sbox_in__3__3;
  __m256i des_single__1_sbox_in__3__4;
  __m256i des_single__1_sbox_in__3__5;
  __m256i des_single__1_sbox_in__3__6;
  __m256i des_single__1_sbox_in__4__1;
  __m256i des_single__1_sbox_in__4__2;
  __m256i des_single__1_sbox_in__4__3;
  __m256i des_single__1_sbox_in__4__4;
  __m256i des_single__1_sbox_in__4__5;
  __m256i des_single__1_sbox_in__4__6;
  __m256i des_single__1_sbox_in__5__1;
  __m256i des_single__1_sbox_in__5__2;
  __m256i des_single__1_sbox_in__5__3;
  __m256i des_single__1_sbox_in__5__4;
  __m256i des_single__1_sbox_in__5__5;
  __m256i des_single__1_sbox_in__5__6;
  __m256i des_single__1_sbox_in__6__1;
  __m256i des_single__1_sbox_in__6__2;
  __m256i des_single__1_sbox_in__6__3;
  __m256i des_single__1_sbox_in__6__4;
  __m256i des_single__1_sbox_in__6__5;
  __m256i des_single__1_sbox_in__6__6;
  __m256i des_single__1_sbox_in__7__1;
  __m256i des_single__1_sbox_in__7__2;
  __m256i des_single__1_sbox_in__7__3;
  __m256i des_single__1_sbox_in__7__4;
  __m256i des_single__1_sbox_in__7__5;
  __m256i des_single__1_sbox_in__7__6;
  __m256i des_single__2_sbox_in__0__1;
  __m256i des_single__2_sbox_in__0__2;
  __m256i des_single__2_sbox_in__0__3;
  __m256i des_single__2_sbox_in__0__4;
  __m256i des_single__2_sbox_in__0__5;
  __m256i des_single__2_sbox_in__0__6;
  __m256i des_single__2_sbox_in__1__1;
  __m256i des_single__2_sbox_in__1__2;
  __m256i des_single__2_sbox_in__1__3;
  __m256i des_single__2_sbox_in__1__4;
  __m256i des_single__2_sbox_in__1__5;
  __m256i des_single__2_sbox_in__1__6;
  __m256i des_single__2_sbox_in__2__1;
  __m256i des_single__2_sbox_in__2__2;
  __m256i des_single__2_sbox_in__2__3;
  __m256i des_single__2_sbox_in__2__4;
  __m256i des_single__2_sbox_in__2__5;
  __m256i des_single__2_sbox_in__2__6;
  __m256i des_single__2_sbox_in__3__1;
  __m256i des_single__2_sbox_in__3__2;
  __m256i des_single__2_sbox_in__3__3;
  __m256i des_single__2_sbox_in__3__4;
  __m256i des_single__2_sbox_in__3__5;
  __m256i des_single__2_sbox_in__3__6;
  __m256i des_single__2_sbox_in__4__1;
  __m256i des_single__2_sbox_in__4__2;
  __m256i des_single__2_sbox_in__4__3;
  __m256i des_single__2_sbox_in__4__4;
  __m256i des_single__2_sbox_in__4__5;
  __m256i des_single__2_sbox_in__4__6;
  __m256i des_single__2_sbox_in__5__1;
  __m256i des_single__2_sbox_in__5__2;
  __m256i des_single__2_sbox_in__5__3;
  __m256i des_single__2_sbox_in__5__4;
  __m256i des_single__2_sbox_in__5__5;
  __m256i des_single__2_sbox_in__5__6;
  __m256i des_single__2_sbox_in__6__1;
  __m256i des_single__2_sbox_in__6__2;
  __m256i des_single__2_sbox_in__6__3;
  __m256i des_single__2_sbox_in__6__4;
  __m256i des_single__2_sbox_in__6__5;
  __m256i des_single__2_sbox_in__6__6;
  __m256i des_single__2_sbox_in__7__1;
  __m256i des_single__2_sbox_in__7__2;
  __m256i des_single__2_sbox_in__7__3;
  __m256i des_single__2_sbox_in__7__4;
  __m256i des_single__2_sbox_in__7__5;
  __m256i des_single__2_sbox_in__7__6;
  __m256i des_single__3_sbox_in__0__1;
  __m256i des_single__3_sbox_in__0__2;
  __m256i des_single__3_sbox_in__0__3;
  __m256i des_single__3_sbox_in__0__4;
  __m256i des_single__3_sbox_in__0__5;
  __m256i des_single__3_sbox_in__0__6;
  __m256i des_single__3_sbox_in__1__1;
  __m256i des_single__3_sbox_in__1__2;
  __m256i des_single__3_sbox_in__1__3;
  __m256i des_single__3_sbox_in__1__4;
  __m256i des_single__3_sbox_in__1__5;
  __m256i des_single__3_sbox_in__1__6;
  __m256i des_single__3_sbox_in__2__1;
  __m256i des_single__3_sbox_in__2__2;
  __m256i des_single__3_sbox_in__2__3;
  __m256i des_single__3_sbox_in__2__4;
  __m256i des_single__3_sbox_in__2__5;
  __m256i des_single__3_sbox_in__2__6;
  __m256i des_single__3_sbox_in__3__1;
  __m256i des_single__3_sbox_in__3__2;
  __m256i des_single__3_sbox_in__3__3;
  __m256i des_single__3_sbox_in__3__4;
  __m256i des_single__3_sbox_in__3__5;
  __m256i des_single__3_sbox_in__3__6;
  __m256i des_single__3_sbox_in__4__1;
  __m256i des_single__3_sbox_in__4__2;
  __m256i des_single__3_sbox_in__4__3;
  __m256i des_single__3_sbox_in__4__4;
  __m256i des_single__3_sbox_in__4__5;
  __m256i des_single__3_sbox_in__4__6;
  __m256i des_single__3_sbox_in__5__1;
  __m256i des_single__3_sbox_in__5__2;
  __m256i des_single__3_sbox_in__5__3;
  __m256i des_single__3_sbox_in__5__4;
  __m256i des_single__3_sbox_in__5__5;
  __m256i des_single__3_sbox_in__5__6;
  __m256i des_single__3_sbox_in__6__1;
  __m256i des_single__3_sbox_in__6__2;
  __m256i des_single__3_sbox_in__6__3;
  __m256i des_single__3_sbox_in__6__4;
  __m256i des_single__3_sbox_in__6__5;
  __m256i des_single__3_sbox_in__6__6;
  __m256i des_single__3_sbox_in__7__1;
  __m256i des_single__3_sbox_in__7__2;
  __m256i des_single__3_sbox_in__7__3;
  __m256i des_single__3_sbox_in__7__4;
  __m256i des_single__3_sbox_in__7__5;
  __m256i des_single__3_sbox_in__7__6;
  __m256i des_single__4_sbox_in__0__1;
  __m256i des_single__4_sbox_in__0__2;
  __m256i des_single__4_sbox_in__0__3;
  __m256i des_single__4_sbox_in__0__4;
  __m256i des_single__4_sbox_in__0__5;
  __m256i des_single__4_sbox_in__0__6;
  __m256i des_single__4_sbox_in__1__1;
  __m256i des_single__4_sbox_in__1__2;
  __m256i des_single__4_sbox_in__1__3;
  __m256i des_single__4_sbox_in__1__4;
  __m256i des_single__4_sbox_in__1__5;
  __m256i des_single__4_sbox_in__1__6;
  __m256i des_single__4_sbox_in__2__1;
  __m256i des_single__4_sbox_in__2__2;
  __m256i des_single__4_sbox_in__2__3;
  __m256i des_single__4_sbox_in__2__4;
  __m256i des_single__4_sbox_in__2__5;
  __m256i des_single__4_sbox_in__2__6;
  __m256i des_single__4_sbox_in__3__1;
  __m256i des_single__4_sbox_in__3__2;
  __m256i des_single__4_sbox_in__3__3;
  __m256i des_single__4_sbox_in__3__4;
  __m256i des_single__4_sbox_in__3__5;
  __m256i des_single__4_sbox_in__3__6;
  __m256i des_single__4_sbox_in__4__1;
  __m256i des_single__4_sbox_in__4__2;
  __m256i des_single__4_sbox_in__4__3;
  __m256i des_single__4_sbox_in__4__4;
  __m256i des_single__4_sbox_in__4__5;
  __m256i des_single__4_sbox_in__4__6;
  __m256i des_single__4_sbox_in__5__1;
  __m256i des_single__4_sbox_in__5__2;
  __m256i des_single__4_sbox_in__5__3;
  __m256i des_single__4_sbox_in__5__4;
  __m256i des_single__4_sbox_in__5__5;
  __m256i des_single__4_sbox_in__5__6;
  __m256i des_single__4_sbox_in__6__1;
  __m256i des_single__4_sbox_in__6__2;
  __m256i des_single__4_sbox_in__6__3;
  __m256i des_single__4_sbox_in__6__4;
  __m256i des_single__4_sbox_in__6__5;
  __m256i des_single__4_sbox_in__6__6;
  __m256i des_single__4_sbox_in__7__1;
  __m256i des_single__4_sbox_in__7__2;
  __m256i des_single__4_sbox_in__7__3;
  __m256i des_single__4_sbox_in__7__4;
  __m256i des_single__4_sbox_in__7__5;
  __m256i des_single__4_sbox_in__7__6;
  __m256i des_single__5_sbox_in__0__1;
  __m256i des_single__5_sbox_in__0__2;
  __m256i des_single__5_sbox_in__0__3;
  __m256i des_single__5_sbox_in__0__4;
  __m256i des_single__5_sbox_in__0__5;
  __m256i des_single__5_sbox_in__0__6;
  __m256i des_single__5_sbox_in__1__1;
  __m256i des_single__5_sbox_in__1__2;
  __m256i des_single__5_sbox_in__1__3;
  __m256i des_single__5_sbox_in__1__4;
  __m256i des_single__5_sbox_in__1__5;
  __m256i des_single__5_sbox_in__1__6;
  __m256i des_single__5_sbox_in__2__1;
  __m256i des_single__5_sbox_in__2__2;
  __m256i des_single__5_sbox_in__2__3;
  __m256i des_single__5_sbox_in__2__4;
  __m256i des_single__5_sbox_in__2__5;
  __m256i des_single__5_sbox_in__2__6;
  __m256i des_single__5_sbox_in__3__1;
  __m256i des_single__5_sbox_in__3__2;
  __m256i des_single__5_sbox_in__3__3;
  __m256i des_single__5_sbox_in__3__4;
  __m256i des_single__5_sbox_in__3__5;
  __m256i des_single__5_sbox_in__3__6;
  __m256i des_single__5_sbox_in__4__1;
  __m256i des_single__5_sbox_in__4__2;
  __m256i des_single__5_sbox_in__4__3;
  __m256i des_single__5_sbox_in__4__4;
  __m256i des_single__5_sbox_in__4__5;
  __m256i des_single__5_sbox_in__4__6;
  __m256i des_single__5_sbox_in__5__1;
  __m256i des_single__5_sbox_in__5__2;
  __m256i des_single__5_sbox_in__5__3;
  __m256i des_single__5_sbox_in__5__4;
  __m256i des_single__5_sbox_in__5__5;
  __m256i des_single__5_sbox_in__5__6;
  __m256i des_single__5_sbox_in__6__1;
  __m256i des_single__5_sbox_in__6__2;
  __m256i des_single__5_sbox_in__6__3;
  __m256i des_single__5_sbox_in__6__4;
  __m256i des_single__5_sbox_in__6__5;
  __m256i des_single__5_sbox_in__6__6;
  __m256i des_single__5_sbox_in__7__1;
  __m256i des_single__5_sbox_in__7__2;
  __m256i des_single__5_sbox_in__7__3;
  __m256i des_single__5_sbox_in__7__4;
  __m256i des_single__5_sbox_in__7__5;
  __m256i des_single__5_sbox_in__7__6;
  __m256i des_single__6_sbox_in__0__1;
  __m256i des_single__6_sbox_in__0__2;
  __m256i des_single__6_sbox_in__0__3;
  __m256i des_single__6_sbox_in__0__4;
  __m256i des_single__6_sbox_in__0__5;
  __m256i des_single__6_sbox_in__0__6;
  __m256i des_single__6_sbox_in__1__1;
  __m256i des_single__6_sbox_in__1__2;
  __m256i des_single__6_sbox_in__1__3;
  __m256i des_single__6_sbox_in__1__4;
  __m256i des_single__6_sbox_in__1__5;
  __m256i des_single__6_sbox_in__1__6;
  __m256i des_single__6_sbox_in__2__1;
  __m256i des_single__6_sbox_in__2__2;
  __m256i des_single__6_sbox_in__2__3;
  __m256i des_single__6_sbox_in__2__4;
  __m256i des_single__6_sbox_in__2__5;
  __m256i des_single__6_sbox_in__2__6;
  __m256i des_single__6_sbox_in__3__1;
  __m256i des_single__6_sbox_in__3__2;
  __m256i des_single__6_sbox_in__3__3;
  __m256i des_single__6_sbox_in__3__4;
  __m256i des_single__6_sbox_in__3__5;
  __m256i des_single__6_sbox_in__3__6;
  __m256i des_single__6_sbox_in__4__1;
  __m256i des_single__6_sbox_in__4__2;
  __m256i des_single__6_sbox_in__4__3;
  __m256i des_single__6_sbox_in__4__4;
  __m256i des_single__6_sbox_in__4__5;
  __m256i des_single__6_sbox_in__4__6;
  __m256i des_single__6_sbox_in__5__1;
  __m256i des_single__6_sbox_in__5__2;
  __m256i des_single__6_sbox_in__5__3;
  __m256i des_single__6_sbox_in__5__4;
  __m256i des_single__6_sbox_in__5__5;
  __m256i des_single__6_sbox_in__5__6;
  __m256i des_single__6_sbox_in__6__1;
  __m256i des_single__6_sbox_in__6__2;
  __m256i des_single__6_sbox_in__6__3;
  __m256i des_single__6_sbox_in__6__4;
  __m256i des_single__6_sbox_in__6__5;
  __m256i des_single__6_sbox_in__6__6;
  __m256i des_single__6_sbox_in__7__1;
  __m256i des_single__6_sbox_in__7__2;
  __m256i des_single__6_sbox_in__7__3;
  __m256i des_single__6_sbox_in__7__4;
  __m256i des_single__6_sbox_in__7__5;
  __m256i des_single__6_sbox_in__7__6;
  __m256i des_single__7_sbox_in__0__1;
  __m256i des_single__7_sbox_in__0__2;
  __m256i des_single__7_sbox_in__0__3;
  __m256i des_single__7_sbox_in__0__4;
  __m256i des_single__7_sbox_in__0__5;
  __m256i des_single__7_sbox_in__0__6;
  __m256i des_single__7_sbox_in__1__1;
  __m256i des_single__7_sbox_in__1__2;
  __m256i des_single__7_sbox_in__1__3;
  __m256i des_single__7_sbox_in__1__4;
  __m256i des_single__7_sbox_in__1__5;
  __m256i des_single__7_sbox_in__1__6;
  __m256i des_single__7_sbox_in__2__1;
  __m256i des_single__7_sbox_in__2__2;
  __m256i des_single__7_sbox_in__2__3;
  __m256i des_single__7_sbox_in__2__4;
  __m256i des_single__7_sbox_in__2__5;
  __m256i des_single__7_sbox_in__2__6;
  __m256i des_single__7_sbox_in__3__1;
  __m256i des_single__7_sbox_in__3__2;
  __m256i des_single__7_sbox_in__3__3;
  __m256i des_single__7_sbox_in__3__4;
  __m256i des_single__7_sbox_in__3__5;
  __m256i des_single__7_sbox_in__3__6;
  __m256i des_single__7_sbox_in__4__1;
  __m256i des_single__7_sbox_in__4__2;
  __m256i des_single__7_sbox_in__4__3;
  __m256i des_single__7_sbox_in__4__4;
  __m256i des_single__7_sbox_in__4__5;
  __m256i des_single__7_sbox_in__4__6;
  __m256i des_single__7_sbox_in__5__1;
  __m256i des_single__7_sbox_in__5__2;
  __m256i des_single__7_sbox_in__5__3;
  __m256i des_single__7_sbox_in__5__4;
  __m256i des_single__7_sbox_in__5__5;
  __m256i des_single__7_sbox_in__5__6;
  __m256i des_single__7_sbox_in__6__1;
  __m256i des_single__7_sbox_in__6__2;
  __m256i des_single__7_sbox_in__6__3;
  __m256i des_single__7_sbox_in__6__4;
  __m256i des_single__7_sbox_in__6__5;
  __m256i des_single__7_sbox_in__6__6;
  __m256i des_single__7_sbox_in__7__1;
  __m256i des_single__7_sbox_in__7__2;
  __m256i des_single__7_sbox_in__7__3;
  __m256i des_single__7_sbox_in__7__4;
  __m256i des_single__7_sbox_in__7__5;
  __m256i des_single__7_sbox_in__7__6;
  __m256i des_single__8_sbox_in__0__1;
  __m256i des_single__8_sbox_in__0__2;
  __m256i des_single__8_sbox_in__0__3;
  __m256i des_single__8_sbox_in__0__4;
  __m256i des_single__8_sbox_in__0__5;
  __m256i des_single__8_sbox_in__0__6;
  __m256i des_single__8_sbox_in__1__1;
  __m256i des_single__8_sbox_in__1__2;
  __m256i des_single__8_sbox_in__1__3;
  __m256i des_single__8_sbox_in__1__4;
  __m256i des_single__8_sbox_in__1__5;
  __m256i des_single__8_sbox_in__1__6;
  __m256i des_single__8_sbox_in__2__1;
  __m256i des_single__8_sbox_in__2__2;
  __m256i des_single__8_sbox_in__2__3;
  __m256i des_single__8_sbox_in__2__4;
  __m256i des_single__8_sbox_in__2__5;
  __m256i des_single__8_sbox_in__2__6;
  __m256i des_single__8_sbox_in__3__1;
  __m256i des_single__8_sbox_in__3__2;
  __m256i des_single__8_sbox_in__3__3;
  __m256i des_single__8_sbox_in__3__4;
  __m256i des_single__8_sbox_in__3__5;
  __m256i des_single__8_sbox_in__3__6;
  __m256i des_single__8_sbox_in__4__1;
  __m256i des_single__8_sbox_in__4__2;
  __m256i des_single__8_sbox_in__4__3;
  __m256i des_single__8_sbox_in__4__4;
  __m256i des_single__8_sbox_in__4__5;
  __m256i des_single__8_sbox_in__4__6;
  __m256i des_single__8_sbox_in__5__1;
  __m256i des_single__8_sbox_in__5__2;
  __m256i des_single__8_sbox_in__5__3;
  __m256i des_single__8_sbox_in__5__4;
  __m256i des_single__8_sbox_in__5__5;
  __m256i des_single__8_sbox_in__5__6;
  __m256i des_single__8_sbox_in__6__1;
  __m256i des_single__8_sbox_in__6__2;
  __m256i des_single__8_sbox_in__6__3;
  __m256i des_single__8_sbox_in__6__4;
  __m256i des_single__8_sbox_in__6__5;
  __m256i des_single__8_sbox_in__6__6;
  __m256i des_single__8_sbox_in__7__1;
  __m256i des_single__8_sbox_in__7__2;
  __m256i des_single__8_sbox_in__7__3;
  __m256i des_single__8_sbox_in__7__4;
  __m256i des_single__8_sbox_in__7__5;
  __m256i des_single__8_sbox_in__7__6;
  __m256i des_single__9_sbox_in__0__1;
  __m256i des_single__9_sbox_in__0__2;
  __m256i des_single__9_sbox_in__0__3;
  __m256i des_single__9_sbox_in__0__4;
  __m256i des_single__9_sbox_in__0__5;
  __m256i des_single__9_sbox_in__0__6;
  __m256i des_single__9_sbox_in__1__1;
  __m256i des_single__9_sbox_in__1__2;
  __m256i des_single__9_sbox_in__1__3;
  __m256i des_single__9_sbox_in__1__4;
  __m256i des_single__9_sbox_in__1__5;
  __m256i des_single__9_sbox_in__1__6;
  __m256i des_single__9_sbox_in__2__1;
  __m256i des_single__9_sbox_in__2__2;
  __m256i des_single__9_sbox_in__2__3;
  __m256i des_single__9_sbox_in__2__4;
  __m256i des_single__9_sbox_in__2__5;
  __m256i des_single__9_sbox_in__2__6;
  __m256i des_single__9_sbox_in__3__1;
  __m256i des_single__9_sbox_in__3__2;
  __m256i des_single__9_sbox_in__3__3;
  __m256i des_single__9_sbox_in__3__4;
  __m256i des_single__9_sbox_in__3__5;
  __m256i des_single__9_sbox_in__3__6;
  __m256i des_single__9_sbox_in__4__1;
  __m256i des_single__9_sbox_in__4__2;
  __m256i des_single__9_sbox_in__4__3;
  __m256i des_single__9_sbox_in__4__4;
  __m256i des_single__9_sbox_in__4__5;
  __m256i des_single__9_sbox_in__4__6;
  __m256i des_single__9_sbox_in__5__1;
  __m256i des_single__9_sbox_in__5__2;
  __m256i des_single__9_sbox_in__5__3;
  __m256i des_single__9_sbox_in__5__4;
  __m256i des_single__9_sbox_in__5__5;
  __m256i des_single__9_sbox_in__5__6;
  __m256i des_single__9_sbox_in__6__1;
  __m256i des_single__9_sbox_in__6__2;
  __m256i des_single__9_sbox_in__6__3;
  __m256i des_single__9_sbox_in__6__4;
  __m256i des_single__9_sbox_in__6__5;
  __m256i des_single__9_sbox_in__6__6;
  __m256i des_single__9_sbox_in__7__1;
  __m256i des_single__9_sbox_in__7__2;
  __m256i des_single__9_sbox_in__7__3;
  __m256i des_single__9_sbox_in__7__4;
  __m256i des_single__9_sbox_in__7__5;
  __m256i des_single__9_sbox_in__7__6;

  des_single__0_sbox_in__0__1 = _mm256_xor_si256(key[9],plaintext[6]);
  des_single__0_sbox_in__0__2 = _mm256_xor_si256(key[50],plaintext[56]);
  des_single__0_sbox_in__0__3 = _mm256_xor_si256(key[33],plaintext[48]);
  des_single__0_sbox_in__0__4 = _mm256_xor_si256(key[59],plaintext[40]);
  des_single__0_sbox_in__0__5 = _mm256_xor_si256(key[48],plaintext[32]);
  des_single__0_sbox_in__0__6 = _mm256_xor_si256(key[16],plaintext[24]);
  sbox__0(des_single__0_sbox_in__0__1,des_single__0_sbox_in__0__2,des_single__0_sbox_in__0__3,des_single__0_sbox_in__0__4,des_single__0_sbox_in__0__5,des_single__0_sbox_in__0__6,&des_single__0_sbox_in__0__1,&des_single__0_sbox_in__0__2,&des_single__0_sbox_in__0__3,&des_single__0_sbox_in__0__4);
  plaintext[59] = _mm256_xor_si256(des_single__0_sbox_in__0__1,plaintext[59]);
  plaintext[61] = _mm256_xor_si256(des_single__0_sbox_in__0__2,plaintext[61]);
  plaintext[13] = _mm256_xor_si256(des_single__0_sbox_in__0__3,plaintext[13]);
  plaintext[15] = _mm256_xor_si256(des_single__0_sbox_in__0__4,plaintext[15]);
  des_single__0_sbox_in__1__1 = _mm256_xor_si256(key[32],plaintext[32]);
  des_single__0_sbox_in__1__2 = _mm256_xor_si256(key[56],plaintext[24]);
  des_single__0_sbox_in__1__3 = _mm256_xor_si256(key[1],plaintext[16]);
  des_single__0_sbox_in__1__4 = _mm256_xor_si256(key[8],plaintext[8]);
  des_single__0_sbox_in__1__5 = _mm256_xor_si256(key[18],plaintext[0]);
  des_single__0_sbox_in__1__6 = _mm256_xor_si256(key[41],plaintext[58]);
  sbox__1(des_single__0_sbox_in__1__1,des_single__0_sbox_in__1__2,des_single__0_sbox_in__1__3,des_single__0_sbox_in__1__4,des_single__0_sbox_in__1__5,des_single__0_sbox_in__1__6,&des_single__0_sbox_in__1__1,&des_single__0_sbox_in__1__2,&des_single__0_sbox_in__1__3,&des_single__0_sbox_in__1__4);
  plaintext[27] = _mm256_xor_si256(des_single__0_sbox_in__1__1,plaintext[27]);
  plaintext[39] = _mm256_xor_si256(des_single__0_sbox_in__1__2,plaintext[39]);
  plaintext[49] = _mm256_xor_si256(des_single__0_sbox_in__1__3,plaintext[49]);
  plaintext[53] = _mm256_xor_si256(des_single__0_sbox_in__1__4,plaintext[53]);
  des_single__0_sbox_in__2__1 = _mm256_xor_si256(key[2],plaintext[0]);
  des_single__0_sbox_in__2__2 = _mm256_xor_si256(key[34],plaintext[58]);
  des_single__0_sbox_in__2__3 = _mm256_xor_si256(key[25],plaintext[50]);
  des_single__0_sbox_in__2__4 = _mm256_xor_si256(key[24],plaintext[42]);
  des_single__0_sbox_in__2__5 = _mm256_xor_si256(key[43],plaintext[34]);
  des_single__0_sbox_in__2__6 = _mm256_xor_si256(key[57],plaintext[26]);
  sbox__2(des_single__0_sbox_in__2__1,des_single__0_sbox_in__2__2,des_single__0_sbox_in__2__3,des_single__0_sbox_in__2__4,des_single__0_sbox_in__2__5,des_single__0_sbox_in__2__6,&des_single__0_sbox_in__2__1,&des_single__0_sbox_in__2__2,&des_single__0_sbox_in__2__3,&des_single__0_sbox_in__2__4);
  plaintext[5] = _mm256_xor_si256(des_single__0_sbox_in__2__1,plaintext[5]);
  plaintext[3] = _mm256_xor_si256(des_single__0_sbox_in__2__2,plaintext[3]);
  plaintext[23] = _mm256_xor_si256(des_single__0_sbox_in__2__3,plaintext[23]);
  plaintext[17] = _mm256_xor_si256(des_single__0_sbox_in__2__4,plaintext[17]);
  des_single__0_sbox_in__3__1 = _mm256_xor_si256(key[58],plaintext[34]);
  des_single__0_sbox_in__3__2 = _mm256_xor_si256(key[0],plaintext[26]);
  des_single__0_sbox_in__3__3 = _mm256_xor_si256(key[35],plaintext[18]);
  des_single__0_sbox_in__3__4 = _mm256_xor_si256(key[26],plaintext[10]);
  des_single__0_sbox_in__3__5 = _mm256_xor_si256(key[17],plaintext[2]);
  des_single__0_sbox_in__3__6 = _mm256_xor_si256(key[40],plaintext[60]);
  sbox__3(des_single__0_sbox_in__3__1,des_single__0_sbox_in__3__2,des_single__0_sbox_in__3__3,des_single__0_sbox_in__3__4,des_single__0_sbox_in__3__5,des_single__0_sbox_in__3__6,&des_single__0_sbox_in__3__1,&des_single__0_sbox_in__3__2,&des_single__0_sbox_in__3__3,&des_single__0_sbox_in__3__4);
  plaintext[55] = _mm256_xor_si256(des_single__0_sbox_in__3__1,plaintext[55]);
  plaintext[37] = _mm256_xor_si256(des_single__0_sbox_in__3__2,plaintext[37]);
  plaintext[51] = _mm256_xor_si256(des_single__0_sbox_in__3__3,plaintext[51]);
  plaintext[57] = _mm256_xor_si256(des_single__0_sbox_in__3__4,plaintext[57]);
  des_single__0_sbox_in__4__1 = _mm256_xor_si256(key[21],plaintext[2]);
  des_single__0_sbox_in__4__2 = _mm256_xor_si256(key[27],plaintext[60]);
  des_single__0_sbox_in__4__3 = _mm256_xor_si256(key[38],plaintext[52]);
  des_single__0_sbox_in__4__4 = _mm256_xor_si256(key[53],plaintext[44]);
  des_single__0_sbox_in__4__5 = _mm256_xor_si256(key[36],plaintext[36]);
  des_single__0_sbox_in__4__6 = _mm256_xor_si256(key[3],plaintext[28]);
  sbox__4(des_single__0_sbox_in__4__1,des_single__0_sbox_in__4__2,des_single__0_sbox_in__4__3,des_single__0_sbox_in__4__4,des_single__0_sbox_in__4__5,des_single__0_sbox_in__4__6,&des_single__0_sbox_in__4__1,&des_single__0_sbox_in__4__2,&des_single__0_sbox_in__4__3,&des_single__0_sbox_in__4__4);
  plaintext[1] = _mm256_xor_si256(des_single__0_sbox_in__4__1,plaintext[1]);
  plaintext[19] = _mm256_xor_si256(des_single__0_sbox_in__4__2,plaintext[19]);
  plaintext[63] = _mm256_xor_si256(des_single__0_sbox_in__4__3,plaintext[63]);
  plaintext[41] = _mm256_xor_si256(des_single__0_sbox_in__4__4,plaintext[41]);
  des_single__0_sbox_in__5__1 = _mm256_xor_si256(key[46],plaintext[36]);
  des_single__0_sbox_in__5__2 = _mm256_xor_si256(key[29],plaintext[28]);
  des_single__0_sbox_in__5__3 = _mm256_xor_si256(key[4],plaintext[20]);
  des_single__0_sbox_in__5__4 = _mm256_xor_si256(key[52],plaintext[12]);
  des_single__0_sbox_in__5__5 = _mm256_xor_si256(key[22],plaintext[4]);
  des_single__0_sbox_in__5__6 = _mm256_xor_si256(key[28],plaintext[62]);
  sbox__5(des_single__0_sbox_in__5__1,des_single__0_sbox_in__5__2,des_single__0_sbox_in__5__3,des_single__0_sbox_in__5__4,des_single__0_sbox_in__5__5,des_single__0_sbox_in__5__6,&des_single__0_sbox_in__5__1,&des_single__0_sbox_in__5__2,&des_single__0_sbox_in__5__3,&des_single__0_sbox_in__5__4);
  plaintext[33] = _mm256_xor_si256(des_single__0_sbox_in__5__1,plaintext[33]);
  plaintext[31] = _mm256_xor_si256(des_single__0_sbox_in__5__2,plaintext[31]);
  plaintext[43] = _mm256_xor_si256(des_single__0_sbox_in__5__3,plaintext[43]);
  plaintext[45] = _mm256_xor_si256(des_single__0_sbox_in__5__4,plaintext[45]);
  des_single__0_sbox_in__6__1 = _mm256_xor_si256(key[60],plaintext[4]);
  des_single__0_sbox_in__6__2 = _mm256_xor_si256(key[20],plaintext[62]);
  des_single__0_sbox_in__6__3 = _mm256_xor_si256(key[37],plaintext[54]);
  des_single__0_sbox_in__6__4 = _mm256_xor_si256(key[62],plaintext[46]);
  des_single__0_sbox_in__6__5 = _mm256_xor_si256(key[14],plaintext[38]);
  des_single__0_sbox_in__6__6 = _mm256_xor_si256(key[19],plaintext[30]);
  sbox__6(des_single__0_sbox_in__6__1,des_single__0_sbox_in__6__2,des_single__0_sbox_in__6__3,des_single__0_sbox_in__6__4,des_single__0_sbox_in__6__5,des_single__0_sbox_in__6__6,&des_single__0_sbox_in__6__1,&des_single__0_sbox_in__6__2,&des_single__0_sbox_in__6__3,&des_single__0_sbox_in__6__4);
  plaintext[7] = _mm256_xor_si256(des_single__0_sbox_in__6__1,plaintext[7]);
  plaintext[35] = _mm256_xor_si256(des_single__0_sbox_in__6__2,plaintext[35]);
  plaintext[21] = _mm256_xor_si256(des_single__0_sbox_in__6__3,plaintext[21]);
  plaintext[9] = _mm256_xor_si256(des_single__0_sbox_in__6__4,plaintext[9]);
  des_single__0_sbox_in__7__1 = _mm256_xor_si256(key[44],plaintext[38]);
  des_single__0_sbox_in__7__2 = _mm256_xor_si256(key[13],plaintext[30]);
  des_single__0_sbox_in__7__3 = _mm256_xor_si256(key[12],plaintext[22]);
  des_single__0_sbox_in__7__4 = _mm256_xor_si256(key[61],plaintext[14]);
  des_single__0_sbox_in__7__5 = _mm256_xor_si256(key[54],plaintext[6]);
  des_single__0_sbox_in__7__6 = _mm256_xor_si256(key[30],plaintext[56]);
  sbox__7(des_single__0_sbox_in__7__1,des_single__0_sbox_in__7__2,des_single__0_sbox_in__7__3,des_single__0_sbox_in__7__4,des_single__0_sbox_in__7__5,des_single__0_sbox_in__7__6,&des_single__0_sbox_in__7__1,&des_single__0_sbox_in__7__2,&des_single__0_sbox_in__7__3,&des_single__0_sbox_in__7__4);
  plaintext[25] = _mm256_xor_si256(des_single__0_sbox_in__7__1,plaintext[25]);
  plaintext[47] = _mm256_xor_si256(des_single__0_sbox_in__7__2,plaintext[47]);
  plaintext[11] = _mm256_xor_si256(des_single__0_sbox_in__7__3,plaintext[11]);
  plaintext[29] = _mm256_xor_si256(des_single__0_sbox_in__7__4,plaintext[29]);
  des_single__1_sbox_in__0__1 = _mm256_xor_si256(key[1],plaintext[7]);
  des_single__1_sbox_in__0__2 = _mm256_xor_si256(key[42],plaintext[57]);
  des_single__1_sbox_in__0__3 = _mm256_xor_si256(key[25],plaintext[49]);
  des_single__1_sbox_in__0__4 = _mm256_xor_si256(key[51],plaintext[41]);
  des_single__1_sbox_in__0__5 = _mm256_xor_si256(key[40],plaintext[33]);
  des_single__1_sbox_in__0__6 = _mm256_xor_si256(key[8],plaintext[25]);
  sbox__0(des_single__1_sbox_in__0__1,des_single__1_sbox_in__0__2,des_single__1_sbox_in__0__3,des_single__1_sbox_in__0__4,des_single__1_sbox_in__0__5,des_single__1_sbox_in__0__6,&des_single__1_sbox_in__0__1,&des_single__1_sbox_in__0__2,&des_single__1_sbox_in__0__3,&des_single__1_sbox_in__0__4);
  plaintext[58] = _mm256_xor_si256(des_single__1_sbox_in__0__1,plaintext[58]);
  plaintext[60] = _mm256_xor_si256(des_single__1_sbox_in__0__2,plaintext[60]);
  plaintext[12] = _mm256_xor_si256(des_single__1_sbox_in__0__3,plaintext[12]);
  plaintext[14] = _mm256_xor_si256(des_single__1_sbox_in__0__4,plaintext[14]);
  des_single__1_sbox_in__1__1 = _mm256_xor_si256(key[24],plaintext[33]);
  des_single__1_sbox_in__1__2 = _mm256_xor_si256(key[48],plaintext[25]);
  des_single__1_sbox_in__1__3 = _mm256_xor_si256(key[58],plaintext[17]);
  des_single__1_sbox_in__1__4 = _mm256_xor_si256(key[0],plaintext[9]);
  des_single__1_sbox_in__1__5 = _mm256_xor_si256(key[10],plaintext[1]);
  des_single__1_sbox_in__1__6 = _mm256_xor_si256(key[33],plaintext[59]);
  sbox__1(des_single__1_sbox_in__1__1,des_single__1_sbox_in__1__2,des_single__1_sbox_in__1__3,des_single__1_sbox_in__1__4,des_single__1_sbox_in__1__5,des_single__1_sbox_in__1__6,&des_single__1_sbox_in__1__1,&des_single__1_sbox_in__1__2,&des_single__1_sbox_in__1__3,&des_single__1_sbox_in__1__4);
  plaintext[26] = _mm256_xor_si256(des_single__1_sbox_in__1__1,plaintext[26]);
  plaintext[38] = _mm256_xor_si256(des_single__1_sbox_in__1__2,plaintext[38]);
  plaintext[48] = _mm256_xor_si256(des_single__1_sbox_in__1__3,plaintext[48]);
  plaintext[52] = _mm256_xor_si256(des_single__1_sbox_in__1__4,plaintext[52]);
  des_single__1_sbox_in__2__1 = _mm256_xor_si256(key[59],plaintext[1]);
  des_single__1_sbox_in__2__2 = _mm256_xor_si256(key[26],plaintext[59]);
  des_single__1_sbox_in__2__3 = _mm256_xor_si256(key[17],plaintext[51]);
  des_single__1_sbox_in__2__4 = _mm256_xor_si256(key[16],plaintext[43]);
  des_single__1_sbox_in__2__5 = _mm256_xor_si256(key[35],plaintext[35]);
  des_single__1_sbox_in__2__6 = _mm256_xor_si256(key[49],plaintext[27]);
  sbox__2(des_single__1_sbox_in__2__1,des_single__1_sbox_in__2__2,des_single__1_sbox_in__2__3,des_single__1_sbox_in__2__4,des_single__1_sbox_in__2__5,des_single__1_sbox_in__2__6,&des_single__1_sbox_in__2__1,&des_single__1_sbox_in__2__2,&des_single__1_sbox_in__2__3,&des_single__1_sbox_in__2__4);
  plaintext[4] = _mm256_xor_si256(des_single__1_sbox_in__2__1,plaintext[4]);
  plaintext[2] = _mm256_xor_si256(des_single__1_sbox_in__2__2,plaintext[2]);
  plaintext[22] = _mm256_xor_si256(des_single__1_sbox_in__2__3,plaintext[22]);
  plaintext[16] = _mm256_xor_si256(des_single__1_sbox_in__2__4,plaintext[16]);
  des_single__1_sbox_in__3__1 = _mm256_xor_si256(key[50],plaintext[35]);
  des_single__1_sbox_in__3__2 = _mm256_xor_si256(key[57],plaintext[27]);
  des_single__1_sbox_in__3__3 = _mm256_xor_si256(key[56],plaintext[19]);
  des_single__1_sbox_in__3__4 = _mm256_xor_si256(key[18],plaintext[11]);
  des_single__1_sbox_in__3__5 = _mm256_xor_si256(key[9],plaintext[3]);
  des_single__1_sbox_in__3__6 = _mm256_xor_si256(key[32],plaintext[61]);
  sbox__3(des_single__1_sbox_in__3__1,des_single__1_sbox_in__3__2,des_single__1_sbox_in__3__3,des_single__1_sbox_in__3__4,des_single__1_sbox_in__3__5,des_single__1_sbox_in__3__6,&des_single__1_sbox_in__3__1,&des_single__1_sbox_in__3__2,&des_single__1_sbox_in__3__3,&des_single__1_sbox_in__3__4);
  plaintext[54] = _mm256_xor_si256(des_single__1_sbox_in__3__1,plaintext[54]);
  plaintext[36] = _mm256_xor_si256(des_single__1_sbox_in__3__2,plaintext[36]);
  plaintext[50] = _mm256_xor_si256(des_single__1_sbox_in__3__3,plaintext[50]);
  plaintext[56] = _mm256_xor_si256(des_single__1_sbox_in__3__4,plaintext[56]);
  des_single__1_sbox_in__4__1 = _mm256_xor_si256(key[13],plaintext[3]);
  des_single__1_sbox_in__4__2 = _mm256_xor_si256(key[19],plaintext[61]);
  des_single__1_sbox_in__4__3 = _mm256_xor_si256(key[30],plaintext[53]);
  des_single__1_sbox_in__4__4 = _mm256_xor_si256(key[45],plaintext[45]);
  des_single__1_sbox_in__4__5 = _mm256_xor_si256(key[28],plaintext[37]);
  des_single__1_sbox_in__4__6 = _mm256_xor_si256(key[62],plaintext[29]);
  sbox__4(des_single__1_sbox_in__4__1,des_single__1_sbox_in__4__2,des_single__1_sbox_in__4__3,des_single__1_sbox_in__4__4,des_single__1_sbox_in__4__5,des_single__1_sbox_in__4__6,&des_single__1_sbox_in__4__1,&des_single__1_sbox_in__4__2,&des_single__1_sbox_in__4__3,&des_single__1_sbox_in__4__4);
  plaintext[0] = _mm256_xor_si256(des_single__1_sbox_in__4__1,plaintext[0]);
  plaintext[18] = _mm256_xor_si256(des_single__1_sbox_in__4__2,plaintext[18]);
  plaintext[62] = _mm256_xor_si256(des_single__1_sbox_in__4__3,plaintext[62]);
  plaintext[40] = _mm256_xor_si256(des_single__1_sbox_in__4__4,plaintext[40]);
  des_single__1_sbox_in__5__1 = _mm256_xor_si256(key[38],plaintext[37]);
  des_single__1_sbox_in__5__2 = _mm256_xor_si256(key[21],plaintext[29]);
  des_single__1_sbox_in__5__3 = _mm256_xor_si256(key[27],plaintext[21]);
  des_single__1_sbox_in__5__4 = _mm256_xor_si256(key[44],plaintext[13]);
  des_single__1_sbox_in__5__5 = _mm256_xor_si256(key[14],plaintext[5]);
  des_single__1_sbox_in__5__6 = _mm256_xor_si256(key[20],plaintext[63]);
  sbox__5(des_single__1_sbox_in__5__1,des_single__1_sbox_in__5__2,des_single__1_sbox_in__5__3,des_single__1_sbox_in__5__4,des_single__1_sbox_in__5__5,des_single__1_sbox_in__5__6,&des_single__1_sbox_in__5__1,&des_single__1_sbox_in__5__2,&des_single__1_sbox_in__5__3,&des_single__1_sbox_in__5__4);
  plaintext[32] = _mm256_xor_si256(des_single__1_sbox_in__5__1,plaintext[32]);
  plaintext[30] = _mm256_xor_si256(des_single__1_sbox_in__5__2,plaintext[30]);
  plaintext[42] = _mm256_xor_si256(des_single__1_sbox_in__5__3,plaintext[42]);
  plaintext[44] = _mm256_xor_si256(des_single__1_sbox_in__5__4,plaintext[44]);
  des_single__1_sbox_in__6__1 = _mm256_xor_si256(key[52],plaintext[5]);
  des_single__1_sbox_in__6__2 = _mm256_xor_si256(key[12],plaintext[63]);
  des_single__1_sbox_in__6__3 = _mm256_xor_si256(key[29],plaintext[55]);
  des_single__1_sbox_in__6__4 = _mm256_xor_si256(key[54],plaintext[47]);
  des_single__1_sbox_in__6__5 = _mm256_xor_si256(key[6],plaintext[39]);
  des_single__1_sbox_in__6__6 = _mm256_xor_si256(key[11],plaintext[31]);
  sbox__6(des_single__1_sbox_in__6__1,des_single__1_sbox_in__6__2,des_single__1_sbox_in__6__3,des_single__1_sbox_in__6__4,des_single__1_sbox_in__6__5,des_single__1_sbox_in__6__6,&des_single__1_sbox_in__6__1,&des_single__1_sbox_in__6__2,&des_single__1_sbox_in__6__3,&des_single__1_sbox_in__6__4);
  plaintext[6] = _mm256_xor_si256(des_single__1_sbox_in__6__1,plaintext[6]);
  plaintext[34] = _mm256_xor_si256(des_single__1_sbox_in__6__2,plaintext[34]);
  plaintext[20] = _mm256_xor_si256(des_single__1_sbox_in__6__3,plaintext[20]);
  plaintext[8] = _mm256_xor_si256(des_single__1_sbox_in__6__4,plaintext[8]);
  des_single__1_sbox_in__7__1 = _mm256_xor_si256(key[36],plaintext[39]);
  des_single__1_sbox_in__7__2 = _mm256_xor_si256(key[5],plaintext[31]);
  des_single__1_sbox_in__7__3 = _mm256_xor_si256(key[4],plaintext[23]);
  des_single__1_sbox_in__7__4 = _mm256_xor_si256(key[53],plaintext[15]);
  des_single__1_sbox_in__7__5 = _mm256_xor_si256(key[46],plaintext[7]);
  des_single__1_sbox_in__7__6 = _mm256_xor_si256(key[22],plaintext[57]);
  sbox__7(des_single__1_sbox_in__7__1,des_single__1_sbox_in__7__2,des_single__1_sbox_in__7__3,des_single__1_sbox_in__7__4,des_single__1_sbox_in__7__5,des_single__1_sbox_in__7__6,&des_single__1_sbox_in__7__1,&des_single__1_sbox_in__7__2,&des_single__1_sbox_in__7__3,&des_single__1_sbox_in__7__4);
  plaintext[24] = _mm256_xor_si256(des_single__1_sbox_in__7__1,plaintext[24]);
  plaintext[46] = _mm256_xor_si256(des_single__1_sbox_in__7__2,plaintext[46]);
  plaintext[10] = _mm256_xor_si256(des_single__1_sbox_in__7__3,plaintext[10]);
  plaintext[28] = _mm256_xor_si256(des_single__1_sbox_in__7__4,plaintext[28]);
  des_single__2_sbox_in__0__1 = _mm256_xor_si256(key[50],plaintext[6]);
  des_single__2_sbox_in__0__2 = _mm256_xor_si256(key[26],plaintext[56]);
  des_single__2_sbox_in__0__3 = _mm256_xor_si256(key[9],plaintext[48]);
  des_single__2_sbox_in__0__4 = _mm256_xor_si256(key[35],plaintext[40]);
  des_single__2_sbox_in__0__5 = _mm256_xor_si256(key[24],plaintext[32]);
  des_single__2_sbox_in__0__6 = _mm256_xor_si256(key[57],plaintext[24]);
  sbox__0(des_single__2_sbox_in__0__1,des_single__2_sbox_in__0__2,des_single__2_sbox_in__0__3,des_single__2_sbox_in__0__4,des_single__2_sbox_in__0__5,des_single__2_sbox_in__0__6,&des_single__2_sbox_in__0__1,&des_single__2_sbox_in__0__2,&des_single__2_sbox_in__0__3,&des_single__2_sbox_in__0__4);
  plaintext[59] = _mm256_xor_si256(des_single__2_sbox_in__0__1,plaintext[59]);
  plaintext[61] = _mm256_xor_si256(des_single__2_sbox_in__0__2,plaintext[61]);
  plaintext[13] = _mm256_xor_si256(des_single__2_sbox_in__0__3,plaintext[13]);
  plaintext[15] = _mm256_xor_si256(des_single__2_sbox_in__0__4,plaintext[15]);
  des_single__2_sbox_in__1__1 = _mm256_xor_si256(key[8],plaintext[32]);
  des_single__2_sbox_in__1__2 = _mm256_xor_si256(key[32],plaintext[24]);
  des_single__2_sbox_in__1__3 = _mm256_xor_si256(key[42],plaintext[16]);
  des_single__2_sbox_in__1__4 = _mm256_xor_si256(key[49],plaintext[8]);
  des_single__2_sbox_in__1__5 = _mm256_xor_si256(key[59],plaintext[0]);
  des_single__2_sbox_in__1__6 = _mm256_xor_si256(key[17],plaintext[58]);
  sbox__1(des_single__2_sbox_in__1__1,des_single__2_sbox_in__1__2,des_single__2_sbox_in__1__3,des_single__2_sbox_in__1__4,des_single__2_sbox_in__1__5,des_single__2_sbox_in__1__6,&des_single__2_sbox_in__1__1,&des_single__2_sbox_in__1__2,&des_single__2_sbox_in__1__3,&des_single__2_sbox_in__1__4);
  plaintext[27] = _mm256_xor_si256(des_single__2_sbox_in__1__1,plaintext[27]);
  plaintext[39] = _mm256_xor_si256(des_single__2_sbox_in__1__2,plaintext[39]);
  plaintext[49] = _mm256_xor_si256(des_single__2_sbox_in__1__3,plaintext[49]);
  plaintext[53] = _mm256_xor_si256(des_single__2_sbox_in__1__4,plaintext[53]);
  des_single__2_sbox_in__2__1 = _mm256_xor_si256(key[43],plaintext[0]);
  des_single__2_sbox_in__2__2 = _mm256_xor_si256(key[10],plaintext[58]);
  des_single__2_sbox_in__2__3 = _mm256_xor_si256(key[1],plaintext[50]);
  des_single__2_sbox_in__2__4 = _mm256_xor_si256(key[0],plaintext[42]);
  des_single__2_sbox_in__2__5 = _mm256_xor_si256(key[48],plaintext[34]);
  des_single__2_sbox_in__2__6 = _mm256_xor_si256(key[33],plaintext[26]);
  sbox__2(des_single__2_sbox_in__2__1,des_single__2_sbox_in__2__2,des_single__2_sbox_in__2__3,des_single__2_sbox_in__2__4,des_single__2_sbox_in__2__5,des_single__2_sbox_in__2__6,&des_single__2_sbox_in__2__1,&des_single__2_sbox_in__2__2,&des_single__2_sbox_in__2__3,&des_single__2_sbox_in__2__4);
  plaintext[5] = _mm256_xor_si256(des_single__2_sbox_in__2__1,plaintext[5]);
  plaintext[3] = _mm256_xor_si256(des_single__2_sbox_in__2__2,plaintext[3]);
  plaintext[23] = _mm256_xor_si256(des_single__2_sbox_in__2__3,plaintext[23]);
  plaintext[17] = _mm256_xor_si256(des_single__2_sbox_in__2__4,plaintext[17]);
  des_single__2_sbox_in__3__1 = _mm256_xor_si256(key[34],plaintext[34]);
  des_single__2_sbox_in__3__2 = _mm256_xor_si256(key[41],plaintext[26]);
  des_single__2_sbox_in__3__3 = _mm256_xor_si256(key[40],plaintext[18]);
  des_single__2_sbox_in__3__4 = _mm256_xor_si256(key[2],plaintext[10]);
  des_single__2_sbox_in__3__5 = _mm256_xor_si256(key[58],plaintext[2]);
  des_single__2_sbox_in__3__6 = _mm256_xor_si256(key[16],plaintext[60]);
  sbox__3(des_single__2_sbox_in__3__1,des_single__2_sbox_in__3__2,des_single__2_sbox_in__3__3,des_single__2_sbox_in__3__4,des_single__2_sbox_in__3__5,des_single__2_sbox_in__3__6,&des_single__2_sbox_in__3__1,&des_single__2_sbox_in__3__2,&des_single__2_sbox_in__3__3,&des_single__2_sbox_in__3__4);
  plaintext[55] = _mm256_xor_si256(des_single__2_sbox_in__3__1,plaintext[55]);
  plaintext[37] = _mm256_xor_si256(des_single__2_sbox_in__3__2,plaintext[37]);
  plaintext[51] = _mm256_xor_si256(des_single__2_sbox_in__3__3,plaintext[51]);
  plaintext[57] = _mm256_xor_si256(des_single__2_sbox_in__3__4,plaintext[57]);
  des_single__2_sbox_in__4__1 = _mm256_xor_si256(key[60],plaintext[2]);
  des_single__2_sbox_in__4__2 = _mm256_xor_si256(key[3],plaintext[60]);
  des_single__2_sbox_in__4__3 = _mm256_xor_si256(key[14],plaintext[52]);
  des_single__2_sbox_in__4__4 = _mm256_xor_si256(key[29],plaintext[44]);
  des_single__2_sbox_in__4__5 = _mm256_xor_si256(key[12],plaintext[36]);
  des_single__2_sbox_in__4__6 = _mm256_xor_si256(key[46],plaintext[28]);
  sbox__4(des_single__2_sbox_in__4__1,des_single__2_sbox_in__4__2,des_single__2_sbox_in__4__3,des_single__2_sbox_in__4__4,des_single__2_sbox_in__4__5,des_single__2_sbox_in__4__6,&des_single__2_sbox_in__4__1,&des_single__2_sbox_in__4__2,&des_single__2_sbox_in__4__3,&des_single__2_sbox_in__4__4);
  plaintext[1] = _mm256_xor_si256(des_single__2_sbox_in__4__1,plaintext[1]);
  plaintext[19] = _mm256_xor_si256(des_single__2_sbox_in__4__2,plaintext[19]);
  plaintext[63] = _mm256_xor_si256(des_single__2_sbox_in__4__3,plaintext[63]);
  plaintext[41] = _mm256_xor_si256(des_single__2_sbox_in__4__4,plaintext[41]);
  des_single__2_sbox_in__5__1 = _mm256_xor_si256(key[22],plaintext[36]);
  des_single__2_sbox_in__5__2 = _mm256_xor_si256(key[5],plaintext[28]);
  des_single__2_sbox_in__5__3 = _mm256_xor_si256(key[11],plaintext[20]);
  des_single__2_sbox_in__5__4 = _mm256_xor_si256(key[28],plaintext[12]);
  des_single__2_sbox_in__5__5 = _mm256_xor_si256(key[61],plaintext[4]);
  des_single__2_sbox_in__5__6 = _mm256_xor_si256(key[4],plaintext[62]);
  sbox__5(des_single__2_sbox_in__5__1,des_single__2_sbox_in__5__2,des_single__2_sbox_in__5__3,des_single__2_sbox_in__5__4,des_single__2_sbox_in__5__5,des_single__2_sbox_in__5__6,&des_single__2_sbox_in__5__1,&des_single__2_sbox_in__5__2,&des_single__2_sbox_in__5__3,&des_single__2_sbox_in__5__4);
  plaintext[33] = _mm256_xor_si256(des_single__2_sbox_in__5__1,plaintext[33]);
  plaintext[31] = _mm256_xor_si256(des_single__2_sbox_in__5__2,plaintext[31]);
  plaintext[43] = _mm256_xor_si256(des_single__2_sbox_in__5__3,plaintext[43]);
  plaintext[45] = _mm256_xor_si256(des_single__2_sbox_in__5__4,plaintext[45]);
  des_single__2_sbox_in__6__1 = _mm256_xor_si256(key[36],plaintext[4]);
  des_single__2_sbox_in__6__2 = _mm256_xor_si256(key[27],plaintext[62]);
  des_single__2_sbox_in__6__3 = _mm256_xor_si256(key[13],plaintext[54]);
  des_single__2_sbox_in__6__4 = _mm256_xor_si256(key[38],plaintext[46]);
  des_single__2_sbox_in__6__5 = _mm256_xor_si256(key[53],plaintext[38]);
  des_single__2_sbox_in__6__6 = _mm256_xor_si256(key[62],plaintext[30]);
  sbox__6(des_single__2_sbox_in__6__1,des_single__2_sbox_in__6__2,des_single__2_sbox_in__6__3,des_single__2_sbox_in__6__4,des_single__2_sbox_in__6__5,des_single__2_sbox_in__6__6,&des_single__2_sbox_in__6__1,&des_single__2_sbox_in__6__2,&des_single__2_sbox_in__6__3,&des_single__2_sbox_in__6__4);
  plaintext[7] = _mm256_xor_si256(des_single__2_sbox_in__6__1,plaintext[7]);
  plaintext[35] = _mm256_xor_si256(des_single__2_sbox_in__6__2,plaintext[35]);
  plaintext[21] = _mm256_xor_si256(des_single__2_sbox_in__6__3,plaintext[21]);
  plaintext[9] = _mm256_xor_si256(des_single__2_sbox_in__6__4,plaintext[9]);
  des_single__2_sbox_in__7__1 = _mm256_xor_si256(key[20],plaintext[38]);
  des_single__2_sbox_in__7__2 = _mm256_xor_si256(key[52],plaintext[30]);
  des_single__2_sbox_in__7__3 = _mm256_xor_si256(key[19],plaintext[22]);
  des_single__2_sbox_in__7__4 = _mm256_xor_si256(key[37],plaintext[14]);
  des_single__2_sbox_in__7__5 = _mm256_xor_si256(key[30],plaintext[6]);
  des_single__2_sbox_in__7__6 = _mm256_xor_si256(key[6],plaintext[56]);
  sbox__7(des_single__2_sbox_in__7__1,des_single__2_sbox_in__7__2,des_single__2_sbox_in__7__3,des_single__2_sbox_in__7__4,des_single__2_sbox_in__7__5,des_single__2_sbox_in__7__6,&des_single__2_sbox_in__7__1,&des_single__2_sbox_in__7__2,&des_single__2_sbox_in__7__3,&des_single__2_sbox_in__7__4);
  plaintext[25] = _mm256_xor_si256(des_single__2_sbox_in__7__1,plaintext[25]);
  plaintext[47] = _mm256_xor_si256(des_single__2_sbox_in__7__2,plaintext[47]);
  plaintext[11] = _mm256_xor_si256(des_single__2_sbox_in__7__3,plaintext[11]);
  plaintext[29] = _mm256_xor_si256(des_single__2_sbox_in__7__4,plaintext[29]);
  des_single__3_sbox_in__0__1 = _mm256_xor_si256(key[34],plaintext[7]);
  des_single__3_sbox_in__0__2 = _mm256_xor_si256(key[10],plaintext[57]);
  des_single__3_sbox_in__0__3 = _mm256_xor_si256(key[58],plaintext[49]);
  des_single__3_sbox_in__0__4 = _mm256_xor_si256(key[48],plaintext[41]);
  des_single__3_sbox_in__0__5 = _mm256_xor_si256(key[8],plaintext[33]);
  des_single__3_sbox_in__0__6 = _mm256_xor_si256(key[41],plaintext[25]);
  sbox__0(des_single__3_sbox_in__0__1,des_single__3_sbox_in__0__2,des_single__3_sbox_in__0__3,des_single__3_sbox_in__0__4,des_single__3_sbox_in__0__5,des_single__3_sbox_in__0__6,&des_single__3_sbox_in__0__1,&des_single__3_sbox_in__0__2,&des_single__3_sbox_in__0__3,&des_single__3_sbox_in__0__4);
  plaintext[58] = _mm256_xor_si256(des_single__3_sbox_in__0__1,plaintext[58]);
  plaintext[60] = _mm256_xor_si256(des_single__3_sbox_in__0__2,plaintext[60]);
  plaintext[12] = _mm256_xor_si256(des_single__3_sbox_in__0__3,plaintext[12]);
  plaintext[14] = _mm256_xor_si256(des_single__3_sbox_in__0__4,plaintext[14]);
  des_single__3_sbox_in__1__1 = _mm256_xor_si256(key[57],plaintext[33]);
  des_single__3_sbox_in__1__2 = _mm256_xor_si256(key[16],plaintext[25]);
  des_single__3_sbox_in__1__3 = _mm256_xor_si256(key[26],plaintext[17]);
  des_single__3_sbox_in__1__4 = _mm256_xor_si256(key[33],plaintext[9]);
  des_single__3_sbox_in__1__5 = _mm256_xor_si256(key[43],plaintext[1]);
  des_single__3_sbox_in__1__6 = _mm256_xor_si256(key[1],plaintext[59]);
  sbox__1(des_single__3_sbox_in__1__1,des_single__3_sbox_in__1__2,des_single__3_sbox_in__1__3,des_single__3_sbox_in__1__4,des_single__3_sbox_in__1__5,des_single__3_sbox_in__1__6,&des_single__3_sbox_in__1__1,&des_single__3_sbox_in__1__2,&des_single__3_sbox_in__1__3,&des_single__3_sbox_in__1__4);
  plaintext[26] = _mm256_xor_si256(des_single__3_sbox_in__1__1,plaintext[26]);
  plaintext[38] = _mm256_xor_si256(des_single__3_sbox_in__1__2,plaintext[38]);
  plaintext[48] = _mm256_xor_si256(des_single__3_sbox_in__1__3,plaintext[48]);
  plaintext[52] = _mm256_xor_si256(des_single__3_sbox_in__1__4,plaintext[52]);
  des_single__3_sbox_in__2__1 = _mm256_xor_si256(key[56],plaintext[1]);
  des_single__3_sbox_in__2__2 = _mm256_xor_si256(key[59],plaintext[59]);
  des_single__3_sbox_in__2__3 = _mm256_xor_si256(key[50],plaintext[51]);
  des_single__3_sbox_in__2__4 = _mm256_xor_si256(key[49],plaintext[43]);
  des_single__3_sbox_in__2__5 = _mm256_xor_si256(key[32],plaintext[35]);
  des_single__3_sbox_in__2__6 = _mm256_xor_si256(key[17],plaintext[27]);
  sbox__2(des_single__3_sbox_in__2__1,des_single__3_sbox_in__2__2,des_single__3_sbox_in__2__3,des_single__3_sbox_in__2__4,des_single__3_sbox_in__2__5,des_single__3_sbox_in__2__6,&des_single__3_sbox_in__2__1,&des_single__3_sbox_in__2__2,&des_single__3_sbox_in__2__3,&des_single__3_sbox_in__2__4);
  plaintext[4] = _mm256_xor_si256(des_single__3_sbox_in__2__1,plaintext[4]);
  plaintext[2] = _mm256_xor_si256(des_single__3_sbox_in__2__2,plaintext[2]);
  plaintext[22] = _mm256_xor_si256(des_single__3_sbox_in__2__3,plaintext[22]);
  plaintext[16] = _mm256_xor_si256(des_single__3_sbox_in__2__4,plaintext[16]);
  des_single__3_sbox_in__3__1 = _mm256_xor_si256(key[18],plaintext[35]);
  des_single__3_sbox_in__3__2 = _mm256_xor_si256(key[25],plaintext[27]);
  des_single__3_sbox_in__3__3 = _mm256_xor_si256(key[24],plaintext[19]);
  des_single__3_sbox_in__3__4 = _mm256_xor_si256(key[51],plaintext[11]);
  des_single__3_sbox_in__3__5 = _mm256_xor_si256(key[42],plaintext[3]);
  des_single__3_sbox_in__3__6 = _mm256_xor_si256(key[0],plaintext[61]);
  sbox__3(des_single__3_sbox_in__3__1,des_single__3_sbox_in__3__2,des_single__3_sbox_in__3__3,des_single__3_sbox_in__3__4,des_single__3_sbox_in__3__5,des_single__3_sbox_in__3__6,&des_single__3_sbox_in__3__1,&des_single__3_sbox_in__3__2,&des_single__3_sbox_in__3__3,&des_single__3_sbox_in__3__4);
  plaintext[54] = _mm256_xor_si256(des_single__3_sbox_in__3__1,plaintext[54]);
  plaintext[36] = _mm256_xor_si256(des_single__3_sbox_in__3__2,plaintext[36]);
  plaintext[50] = _mm256_xor_si256(des_single__3_sbox_in__3__3,plaintext[50]);
  plaintext[56] = _mm256_xor_si256(des_single__3_sbox_in__3__4,plaintext[56]);
  des_single__3_sbox_in__4__1 = _mm256_xor_si256(key[44],plaintext[3]);
  des_single__3_sbox_in__4__2 = _mm256_xor_si256(key[54],plaintext[61]);
  des_single__3_sbox_in__4__3 = _mm256_xor_si256(key[61],plaintext[53]);
  des_single__3_sbox_in__4__4 = _mm256_xor_si256(key[13],plaintext[45]);
  des_single__3_sbox_in__4__5 = _mm256_xor_si256(key[27],plaintext[37]);
  des_single__3_sbox_in__4__6 = _mm256_xor_si256(key[30],plaintext[29]);
  sbox__4(des_single__3_sbox_in__4__1,des_single__3_sbox_in__4__2,des_single__3_sbox_in__4__3,des_single__3_sbox_in__4__4,des_single__3_sbox_in__4__5,des_single__3_sbox_in__4__6,&des_single__3_sbox_in__4__1,&des_single__3_sbox_in__4__2,&des_single__3_sbox_in__4__3,&des_single__3_sbox_in__4__4);
  plaintext[0] = _mm256_xor_si256(des_single__3_sbox_in__4__1,plaintext[0]);
  plaintext[18] = _mm256_xor_si256(des_single__3_sbox_in__4__2,plaintext[18]);
  plaintext[62] = _mm256_xor_si256(des_single__3_sbox_in__4__3,plaintext[62]);
  plaintext[40] = _mm256_xor_si256(des_single__3_sbox_in__4__4,plaintext[40]);
  des_single__3_sbox_in__5__1 = _mm256_xor_si256(key[6],plaintext[37]);
  des_single__3_sbox_in__5__2 = _mm256_xor_si256(key[52],plaintext[29]);
  des_single__3_sbox_in__5__3 = _mm256_xor_si256(key[62],plaintext[21]);
  des_single__3_sbox_in__5__4 = _mm256_xor_si256(key[12],plaintext[13]);
  des_single__3_sbox_in__5__5 = _mm256_xor_si256(key[45],plaintext[5]);
  des_single__3_sbox_in__5__6 = _mm256_xor_si256(key[19],plaintext[63]);
  sbox__5(des_single__3_sbox_in__5__1,des_single__3_sbox_in__5__2,des_single__3_sbox_in__5__3,des_single__3_sbox_in__5__4,des_single__3_sbox_in__5__5,des_single__3_sbox_in__5__6,&des_single__3_sbox_in__5__1,&des_single__3_sbox_in__5__2,&des_single__3_sbox_in__5__3,&des_single__3_sbox_in__5__4);
  plaintext[32] = _mm256_xor_si256(des_single__3_sbox_in__5__1,plaintext[32]);
  plaintext[30] = _mm256_xor_si256(des_single__3_sbox_in__5__2,plaintext[30]);
  plaintext[42] = _mm256_xor_si256(des_single__3_sbox_in__5__3,plaintext[42]);
  plaintext[44] = _mm256_xor_si256(des_single__3_sbox_in__5__4,plaintext[44]);
  des_single__3_sbox_in__6__1 = _mm256_xor_si256(key[20],plaintext[5]);
  des_single__3_sbox_in__6__2 = _mm256_xor_si256(key[11],plaintext[63]);
  des_single__3_sbox_in__6__3 = _mm256_xor_si256(key[60],plaintext[55]);
  des_single__3_sbox_in__6__4 = _mm256_xor_si256(key[22],plaintext[47]);
  des_single__3_sbox_in__6__5 = _mm256_xor_si256(key[37],plaintext[39]);
  des_single__3_sbox_in__6__6 = _mm256_xor_si256(key[46],plaintext[31]);
  sbox__6(des_single__3_sbox_in__6__1,des_single__3_sbox_in__6__2,des_single__3_sbox_in__6__3,des_single__3_sbox_in__6__4,des_single__3_sbox_in__6__5,des_single__3_sbox_in__6__6,&des_single__3_sbox_in__6__1,&des_single__3_sbox_in__6__2,&des_single__3_sbox_in__6__3,&des_single__3_sbox_in__6__4);
  plaintext[6] = _mm256_xor_si256(des_single__3_sbox_in__6__1,plaintext[6]);
  plaintext[34] = _mm256_xor_si256(des_single__3_sbox_in__6__2,plaintext[34]);
  plaintext[20] = _mm256_xor_si256(des_single__3_sbox_in__6__3,plaintext[20]);
  plaintext[8] = _mm256_xor_si256(des_single__3_sbox_in__6__4,plaintext[8]);
  des_single__3_sbox_in__7__1 = _mm256_xor_si256(key[4],plaintext[39]);
  des_single__3_sbox_in__7__2 = _mm256_xor_si256(key[36],plaintext[31]);
  des_single__3_sbox_in__7__3 = _mm256_xor_si256(key[3],plaintext[23]);
  des_single__3_sbox_in__7__4 = _mm256_xor_si256(key[21],plaintext[15]);
  des_single__3_sbox_in__7__5 = _mm256_xor_si256(key[14],plaintext[7]);
  des_single__3_sbox_in__7__6 = _mm256_xor_si256(key[53],plaintext[57]);
  sbox__7(des_single__3_sbox_in__7__1,des_single__3_sbox_in__7__2,des_single__3_sbox_in__7__3,des_single__3_sbox_in__7__4,des_single__3_sbox_in__7__5,des_single__3_sbox_in__7__6,&des_single__3_sbox_in__7__1,&des_single__3_sbox_in__7__2,&des_single__3_sbox_in__7__3,&des_single__3_sbox_in__7__4);
  plaintext[24] = _mm256_xor_si256(des_single__3_sbox_in__7__1,plaintext[24]);
  plaintext[46] = _mm256_xor_si256(des_single__3_sbox_in__7__2,plaintext[46]);
  plaintext[10] = _mm256_xor_si256(des_single__3_sbox_in__7__3,plaintext[10]);
  plaintext[28] = _mm256_xor_si256(des_single__3_sbox_in__7__4,plaintext[28]);
  des_single__4_sbox_in__0__1 = _mm256_xor_si256(key[18],plaintext[6]);
  des_single__4_sbox_in__0__2 = _mm256_xor_si256(key[59],plaintext[56]);
  des_single__4_sbox_in__0__3 = _mm256_xor_si256(key[42],plaintext[48]);
  des_single__4_sbox_in__0__4 = _mm256_xor_si256(key[32],plaintext[40]);
  des_single__4_sbox_in__0__5 = _mm256_xor_si256(key[57],plaintext[32]);
  des_single__4_sbox_in__0__6 = _mm256_xor_si256(key[25],plaintext[24]);
  sbox__0(des_single__4_sbox_in__0__1,des_single__4_sbox_in__0__2,des_single__4_sbox_in__0__3,des_single__4_sbox_in__0__4,des_single__4_sbox_in__0__5,des_single__4_sbox_in__0__6,&des_single__4_sbox_in__0__1,&des_single__4_sbox_in__0__2,&des_single__4_sbox_in__0__3,&des_single__4_sbox_in__0__4);
  plaintext[59] = _mm256_xor_si256(des_single__4_sbox_in__0__1,plaintext[59]);
  plaintext[61] = _mm256_xor_si256(des_single__4_sbox_in__0__2,plaintext[61]);
  plaintext[13] = _mm256_xor_si256(des_single__4_sbox_in__0__3,plaintext[13]);
  plaintext[15] = _mm256_xor_si256(des_single__4_sbox_in__0__4,plaintext[15]);
  des_single__4_sbox_in__1__1 = _mm256_xor_si256(key[41],plaintext[32]);
  des_single__4_sbox_in__1__2 = _mm256_xor_si256(key[0],plaintext[24]);
  des_single__4_sbox_in__1__3 = _mm256_xor_si256(key[10],plaintext[16]);
  des_single__4_sbox_in__1__4 = _mm256_xor_si256(key[17],plaintext[8]);
  des_single__4_sbox_in__1__5 = _mm256_xor_si256(key[56],plaintext[0]);
  des_single__4_sbox_in__1__6 = _mm256_xor_si256(key[50],plaintext[58]);
  sbox__1(des_single__4_sbox_in__1__1,des_single__4_sbox_in__1__2,des_single__4_sbox_in__1__3,des_single__4_sbox_in__1__4,des_single__4_sbox_in__1__5,des_single__4_sbox_in__1__6,&des_single__4_sbox_in__1__1,&des_single__4_sbox_in__1__2,&des_single__4_sbox_in__1__3,&des_single__4_sbox_in__1__4);
  plaintext[27] = _mm256_xor_si256(des_single__4_sbox_in__1__1,plaintext[27]);
  plaintext[39] = _mm256_xor_si256(des_single__4_sbox_in__1__2,plaintext[39]);
  plaintext[49] = _mm256_xor_si256(des_single__4_sbox_in__1__3,plaintext[49]);
  plaintext[53] = _mm256_xor_si256(des_single__4_sbox_in__1__4,plaintext[53]);
  des_single__4_sbox_in__2__1 = _mm256_xor_si256(key[40],plaintext[0]);
  des_single__4_sbox_in__2__2 = _mm256_xor_si256(key[43],plaintext[58]);
  des_single__4_sbox_in__2__3 = _mm256_xor_si256(key[34],plaintext[50]);
  des_single__4_sbox_in__2__4 = _mm256_xor_si256(key[33],plaintext[42]);
  des_single__4_sbox_in__2__5 = _mm256_xor_si256(key[16],plaintext[34]);
  des_single__4_sbox_in__2__6 = _mm256_xor_si256(key[1],plaintext[26]);
  sbox__2(des_single__4_sbox_in__2__1,des_single__4_sbox_in__2__2,des_single__4_sbox_in__2__3,des_single__4_sbox_in__2__4,des_single__4_sbox_in__2__5,des_single__4_sbox_in__2__6,&des_single__4_sbox_in__2__1,&des_single__4_sbox_in__2__2,&des_single__4_sbox_in__2__3,&des_single__4_sbox_in__2__4);
  plaintext[5] = _mm256_xor_si256(des_single__4_sbox_in__2__1,plaintext[5]);
  plaintext[3] = _mm256_xor_si256(des_single__4_sbox_in__2__2,plaintext[3]);
  plaintext[23] = _mm256_xor_si256(des_single__4_sbox_in__2__3,plaintext[23]);
  plaintext[17] = _mm256_xor_si256(des_single__4_sbox_in__2__4,plaintext[17]);
  des_single__4_sbox_in__3__1 = _mm256_xor_si256(key[2],plaintext[34]);
  des_single__4_sbox_in__3__2 = _mm256_xor_si256(key[9],plaintext[26]);
  des_single__4_sbox_in__3__3 = _mm256_xor_si256(key[8],plaintext[18]);
  des_single__4_sbox_in__3__4 = _mm256_xor_si256(key[35],plaintext[10]);
  des_single__4_sbox_in__3__5 = _mm256_xor_si256(key[26],plaintext[2]);
  des_single__4_sbox_in__3__6 = _mm256_xor_si256(key[49],plaintext[60]);
  sbox__3(des_single__4_sbox_in__3__1,des_single__4_sbox_in__3__2,des_single__4_sbox_in__3__3,des_single__4_sbox_in__3__4,des_single__4_sbox_in__3__5,des_single__4_sbox_in__3__6,&des_single__4_sbox_in__3__1,&des_single__4_sbox_in__3__2,&des_single__4_sbox_in__3__3,&des_single__4_sbox_in__3__4);
  plaintext[55] = _mm256_xor_si256(des_single__4_sbox_in__3__1,plaintext[55]);
  plaintext[37] = _mm256_xor_si256(des_single__4_sbox_in__3__2,plaintext[37]);
  plaintext[51] = _mm256_xor_si256(des_single__4_sbox_in__3__3,plaintext[51]);
  plaintext[57] = _mm256_xor_si256(des_single__4_sbox_in__3__4,plaintext[57]);
  des_single__4_sbox_in__4__1 = _mm256_xor_si256(key[28],plaintext[2]);
  des_single__4_sbox_in__4__2 = _mm256_xor_si256(key[38],plaintext[60]);
  des_single__4_sbox_in__4__3 = _mm256_xor_si256(key[45],plaintext[52]);
  des_single__4_sbox_in__4__4 = _mm256_xor_si256(key[60],plaintext[44]);
  des_single__4_sbox_in__4__5 = _mm256_xor_si256(key[11],plaintext[36]);
  des_single__4_sbox_in__4__6 = _mm256_xor_si256(key[14],plaintext[28]);
  sbox__4(des_single__4_sbox_in__4__1,des_single__4_sbox_in__4__2,des_single__4_sbox_in__4__3,des_single__4_sbox_in__4__4,des_single__4_sbox_in__4__5,des_single__4_sbox_in__4__6,&des_single__4_sbox_in__4__1,&des_single__4_sbox_in__4__2,&des_single__4_sbox_in__4__3,&des_single__4_sbox_in__4__4);
  plaintext[1] = _mm256_xor_si256(des_single__4_sbox_in__4__1,plaintext[1]);
  plaintext[19] = _mm256_xor_si256(des_single__4_sbox_in__4__2,plaintext[19]);
  plaintext[63] = _mm256_xor_si256(des_single__4_sbox_in__4__3,plaintext[63]);
  plaintext[41] = _mm256_xor_si256(des_single__4_sbox_in__4__4,plaintext[41]);
  des_single__4_sbox_in__5__1 = _mm256_xor_si256(key[53],plaintext[36]);
  des_single__4_sbox_in__5__2 = _mm256_xor_si256(key[36],plaintext[28]);
  des_single__4_sbox_in__5__3 = _mm256_xor_si256(key[46],plaintext[20]);
  des_single__4_sbox_in__5__4 = _mm256_xor_si256(key[27],plaintext[12]);
  des_single__4_sbox_in__5__5 = _mm256_xor_si256(key[29],plaintext[4]);
  des_single__4_sbox_in__5__6 = _mm256_xor_si256(key[3],plaintext[62]);
  sbox__5(des_single__4_sbox_in__5__1,des_single__4_sbox_in__5__2,des_single__4_sbox_in__5__3,des_single__4_sbox_in__5__4,des_single__4_sbox_in__5__5,des_single__4_sbox_in__5__6,&des_single__4_sbox_in__5__1,&des_single__4_sbox_in__5__2,&des_single__4_sbox_in__5__3,&des_single__4_sbox_in__5__4);
  plaintext[33] = _mm256_xor_si256(des_single__4_sbox_in__5__1,plaintext[33]);
  plaintext[31] = _mm256_xor_si256(des_single__4_sbox_in__5__2,plaintext[31]);
  plaintext[43] = _mm256_xor_si256(des_single__4_sbox_in__5__3,plaintext[43]);
  plaintext[45] = _mm256_xor_si256(des_single__4_sbox_in__5__4,plaintext[45]);
  des_single__4_sbox_in__6__1 = _mm256_xor_si256(key[4],plaintext[4]);
  des_single__4_sbox_in__6__2 = _mm256_xor_si256(key[62],plaintext[62]);
  des_single__4_sbox_in__6__3 = _mm256_xor_si256(key[44],plaintext[54]);
  des_single__4_sbox_in__6__4 = _mm256_xor_si256(key[6],plaintext[46]);
  des_single__4_sbox_in__6__5 = _mm256_xor_si256(key[21],plaintext[38]);
  des_single__4_sbox_in__6__6 = _mm256_xor_si256(key[30],plaintext[30]);
  sbox__6(des_single__4_sbox_in__6__1,des_single__4_sbox_in__6__2,des_single__4_sbox_in__6__3,des_single__4_sbox_in__6__4,des_single__4_sbox_in__6__5,des_single__4_sbox_in__6__6,&des_single__4_sbox_in__6__1,&des_single__4_sbox_in__6__2,&des_single__4_sbox_in__6__3,&des_single__4_sbox_in__6__4);
  plaintext[7] = _mm256_xor_si256(des_single__4_sbox_in__6__1,plaintext[7]);
  plaintext[35] = _mm256_xor_si256(des_single__4_sbox_in__6__2,plaintext[35]);
  plaintext[21] = _mm256_xor_si256(des_single__4_sbox_in__6__3,plaintext[21]);
  plaintext[9] = _mm256_xor_si256(des_single__4_sbox_in__6__4,plaintext[9]);
  des_single__4_sbox_in__7__1 = _mm256_xor_si256(key[19],plaintext[38]);
  des_single__4_sbox_in__7__2 = _mm256_xor_si256(key[20],plaintext[30]);
  des_single__4_sbox_in__7__3 = _mm256_xor_si256(key[54],plaintext[22]);
  des_single__4_sbox_in__7__4 = _mm256_xor_si256(key[5],plaintext[14]);
  des_single__4_sbox_in__7__5 = _mm256_xor_si256(key[61],plaintext[6]);
  des_single__4_sbox_in__7__6 = _mm256_xor_si256(key[37],plaintext[56]);
  sbox__7(des_single__4_sbox_in__7__1,des_single__4_sbox_in__7__2,des_single__4_sbox_in__7__3,des_single__4_sbox_in__7__4,des_single__4_sbox_in__7__5,des_single__4_sbox_in__7__6,&des_single__4_sbox_in__7__1,&des_single__4_sbox_in__7__2,&des_single__4_sbox_in__7__3,&des_single__4_sbox_in__7__4);
  plaintext[25] = _mm256_xor_si256(des_single__4_sbox_in__7__1,plaintext[25]);
  plaintext[47] = _mm256_xor_si256(des_single__4_sbox_in__7__2,plaintext[47]);
  plaintext[11] = _mm256_xor_si256(des_single__4_sbox_in__7__3,plaintext[11]);
  plaintext[29] = _mm256_xor_si256(des_single__4_sbox_in__7__4,plaintext[29]);
  des_single__5_sbox_in__0__1 = _mm256_xor_si256(key[2],plaintext[7]);
  des_single__5_sbox_in__0__2 = _mm256_xor_si256(key[43],plaintext[57]);
  des_single__5_sbox_in__0__3 = _mm256_xor_si256(key[26],plaintext[49]);
  des_single__5_sbox_in__0__4 = _mm256_xor_si256(key[16],plaintext[41]);
  des_single__5_sbox_in__0__5 = _mm256_xor_si256(key[41],plaintext[33]);
  des_single__5_sbox_in__0__6 = _mm256_xor_si256(key[9],plaintext[25]);
  sbox__0(des_single__5_sbox_in__0__1,des_single__5_sbox_in__0__2,des_single__5_sbox_in__0__3,des_single__5_sbox_in__0__4,des_single__5_sbox_in__0__5,des_single__5_sbox_in__0__6,&des_single__5_sbox_in__0__1,&des_single__5_sbox_in__0__2,&des_single__5_sbox_in__0__3,&des_single__5_sbox_in__0__4);
  plaintext[58] = _mm256_xor_si256(des_single__5_sbox_in__0__1,plaintext[58]);
  plaintext[60] = _mm256_xor_si256(des_single__5_sbox_in__0__2,plaintext[60]);
  plaintext[12] = _mm256_xor_si256(des_single__5_sbox_in__0__3,plaintext[12]);
  plaintext[14] = _mm256_xor_si256(des_single__5_sbox_in__0__4,plaintext[14]);
  des_single__5_sbox_in__1__1 = _mm256_xor_si256(key[25],plaintext[33]);
  des_single__5_sbox_in__1__2 = _mm256_xor_si256(key[49],plaintext[25]);
  des_single__5_sbox_in__1__3 = _mm256_xor_si256(key[59],plaintext[17]);
  des_single__5_sbox_in__1__4 = _mm256_xor_si256(key[1],plaintext[9]);
  des_single__5_sbox_in__1__5 = _mm256_xor_si256(key[40],plaintext[1]);
  des_single__5_sbox_in__1__6 = _mm256_xor_si256(key[34],plaintext[59]);
  sbox__1(des_single__5_sbox_in__1__1,des_single__5_sbox_in__1__2,des_single__5_sbox_in__1__3,des_single__5_sbox_in__1__4,des_single__5_sbox_in__1__5,des_single__5_sbox_in__1__6,&des_single__5_sbox_in__1__1,&des_single__5_sbox_in__1__2,&des_single__5_sbox_in__1__3,&des_single__5_sbox_in__1__4);
  plaintext[26] = _mm256_xor_si256(des_single__5_sbox_in__1__1,plaintext[26]);
  plaintext[38] = _mm256_xor_si256(des_single__5_sbox_in__1__2,plaintext[38]);
  plaintext[48] = _mm256_xor_si256(des_single__5_sbox_in__1__3,plaintext[48]);
  plaintext[52] = _mm256_xor_si256(des_single__5_sbox_in__1__4,plaintext[52]);
  des_single__5_sbox_in__2__1 = _mm256_xor_si256(key[24],plaintext[1]);
  des_single__5_sbox_in__2__2 = _mm256_xor_si256(key[56],plaintext[59]);
  des_single__5_sbox_in__2__3 = _mm256_xor_si256(key[18],plaintext[51]);
  des_single__5_sbox_in__2__4 = _mm256_xor_si256(key[17],plaintext[43]);
  des_single__5_sbox_in__2__5 = _mm256_xor_si256(key[0],plaintext[35]);
  des_single__5_sbox_in__2__6 = _mm256_xor_si256(key[50],plaintext[27]);
  sbox__2(des_single__5_sbox_in__2__1,des_single__5_sbox_in__2__2,des_single__5_sbox_in__2__3,des_single__5_sbox_in__2__4,des_single__5_sbox_in__2__5,des_single__5_sbox_in__2__6,&des_single__5_sbox_in__2__1,&des_single__5_sbox_in__2__2,&des_single__5_sbox_in__2__3,&des_single__5_sbox_in__2__4);
  plaintext[4] = _mm256_xor_si256(des_single__5_sbox_in__2__1,plaintext[4]);
  plaintext[2] = _mm256_xor_si256(des_single__5_sbox_in__2__2,plaintext[2]);
  plaintext[22] = _mm256_xor_si256(des_single__5_sbox_in__2__3,plaintext[22]);
  plaintext[16] = _mm256_xor_si256(des_single__5_sbox_in__2__4,plaintext[16]);
  des_single__5_sbox_in__3__1 = _mm256_xor_si256(key[51],plaintext[35]);
  des_single__5_sbox_in__3__2 = _mm256_xor_si256(key[58],plaintext[27]);
  des_single__5_sbox_in__3__3 = _mm256_xor_si256(key[57],plaintext[19]);
  des_single__5_sbox_in__3__4 = _mm256_xor_si256(key[48],plaintext[11]);
  des_single__5_sbox_in__3__5 = _mm256_xor_si256(key[10],plaintext[3]);
  des_single__5_sbox_in__3__6 = _mm256_xor_si256(key[33],plaintext[61]);
  sbox__3(des_single__5_sbox_in__3__1,des_single__5_sbox_in__3__2,des_single__5_sbox_in__3__3,des_single__5_sbox_in__3__4,des_single__5_sbox_in__3__5,des_single__5_sbox_in__3__6,&des_single__5_sbox_in__3__1,&des_single__5_sbox_in__3__2,&des_single__5_sbox_in__3__3,&des_single__5_sbox_in__3__4);
  plaintext[54] = _mm256_xor_si256(des_single__5_sbox_in__3__1,plaintext[54]);
  plaintext[36] = _mm256_xor_si256(des_single__5_sbox_in__3__2,plaintext[36]);
  plaintext[50] = _mm256_xor_si256(des_single__5_sbox_in__3__3,plaintext[50]);
  plaintext[56] = _mm256_xor_si256(des_single__5_sbox_in__3__4,plaintext[56]);
  des_single__5_sbox_in__4__1 = _mm256_xor_si256(key[12],plaintext[3]);
  des_single__5_sbox_in__4__2 = _mm256_xor_si256(key[22],plaintext[61]);
  des_single__5_sbox_in__4__3 = _mm256_xor_si256(key[29],plaintext[53]);
  des_single__5_sbox_in__4__4 = _mm256_xor_si256(key[44],plaintext[45]);
  des_single__5_sbox_in__4__5 = _mm256_xor_si256(key[62],plaintext[37]);
  des_single__5_sbox_in__4__6 = _mm256_xor_si256(key[61],plaintext[29]);
  sbox__4(des_single__5_sbox_in__4__1,des_single__5_sbox_in__4__2,des_single__5_sbox_in__4__3,des_single__5_sbox_in__4__4,des_single__5_sbox_in__4__5,des_single__5_sbox_in__4__6,&des_single__5_sbox_in__4__1,&des_single__5_sbox_in__4__2,&des_single__5_sbox_in__4__3,&des_single__5_sbox_in__4__4);
  plaintext[0] = _mm256_xor_si256(des_single__5_sbox_in__4__1,plaintext[0]);
  plaintext[18] = _mm256_xor_si256(des_single__5_sbox_in__4__2,plaintext[18]);
  plaintext[62] = _mm256_xor_si256(des_single__5_sbox_in__4__3,plaintext[62]);
  plaintext[40] = _mm256_xor_si256(des_single__5_sbox_in__4__4,plaintext[40]);
  des_single__5_sbox_in__5__1 = _mm256_xor_si256(key[37],plaintext[37]);
  des_single__5_sbox_in__5__2 = _mm256_xor_si256(key[20],plaintext[29]);
  des_single__5_sbox_in__5__3 = _mm256_xor_si256(key[30],plaintext[21]);
  des_single__5_sbox_in__5__4 = _mm256_xor_si256(key[11],plaintext[13]);
  des_single__5_sbox_in__5__5 = _mm256_xor_si256(key[13],plaintext[5]);
  des_single__5_sbox_in__5__6 = _mm256_xor_si256(key[54],plaintext[63]);
  sbox__5(des_single__5_sbox_in__5__1,des_single__5_sbox_in__5__2,des_single__5_sbox_in__5__3,des_single__5_sbox_in__5__4,des_single__5_sbox_in__5__5,des_single__5_sbox_in__5__6,&des_single__5_sbox_in__5__1,&des_single__5_sbox_in__5__2,&des_single__5_sbox_in__5__3,&des_single__5_sbox_in__5__4);
  plaintext[32] = _mm256_xor_si256(des_single__5_sbox_in__5__1,plaintext[32]);
  plaintext[30] = _mm256_xor_si256(des_single__5_sbox_in__5__2,plaintext[30]);
  plaintext[42] = _mm256_xor_si256(des_single__5_sbox_in__5__3,plaintext[42]);
  plaintext[44] = _mm256_xor_si256(des_single__5_sbox_in__5__4,plaintext[44]);
  des_single__5_sbox_in__6__1 = _mm256_xor_si256(key[19],plaintext[5]);
  des_single__5_sbox_in__6__2 = _mm256_xor_si256(key[46],plaintext[63]);
  des_single__5_sbox_in__6__3 = _mm256_xor_si256(key[28],plaintext[55]);
  des_single__5_sbox_in__6__4 = _mm256_xor_si256(key[53],plaintext[47]);
  des_single__5_sbox_in__6__5 = _mm256_xor_si256(key[5],plaintext[39]);
  des_single__5_sbox_in__6__6 = _mm256_xor_si256(key[14],plaintext[31]);
  sbox__6(des_single__5_sbox_in__6__1,des_single__5_sbox_in__6__2,des_single__5_sbox_in__6__3,des_single__5_sbox_in__6__4,des_single__5_sbox_in__6__5,des_single__5_sbox_in__6__6,&des_single__5_sbox_in__6__1,&des_single__5_sbox_in__6__2,&des_single__5_sbox_in__6__3,&des_single__5_sbox_in__6__4);
  plaintext[6] = _mm256_xor_si256(des_single__5_sbox_in__6__1,plaintext[6]);
  plaintext[34] = _mm256_xor_si256(des_single__5_sbox_in__6__2,plaintext[34]);
  plaintext[20] = _mm256_xor_si256(des_single__5_sbox_in__6__3,plaintext[20]);
  plaintext[8] = _mm256_xor_si256(des_single__5_sbox_in__6__4,plaintext[8]);
  des_single__5_sbox_in__7__1 = _mm256_xor_si256(key[3],plaintext[39]);
  des_single__5_sbox_in__7__2 = _mm256_xor_si256(key[4],plaintext[31]);
  des_single__5_sbox_in__7__3 = _mm256_xor_si256(key[38],plaintext[23]);
  des_single__5_sbox_in__7__4 = _mm256_xor_si256(key[52],plaintext[15]);
  des_single__5_sbox_in__7__5 = _mm256_xor_si256(key[45],plaintext[7]);
  des_single__5_sbox_in__7__6 = _mm256_xor_si256(key[21],plaintext[57]);
  sbox__7(des_single__5_sbox_in__7__1,des_single__5_sbox_in__7__2,des_single__5_sbox_in__7__3,des_single__5_sbox_in__7__4,des_single__5_sbox_in__7__5,des_single__5_sbox_in__7__6,&des_single__5_sbox_in__7__1,&des_single__5_sbox_in__7__2,&des_single__5_sbox_in__7__3,&des_single__5_sbox_in__7__4);
  plaintext[24] = _mm256_xor_si256(des_single__5_sbox_in__7__1,plaintext[24]);
  plaintext[46] = _mm256_xor_si256(des_single__5_sbox_in__7__2,plaintext[46]);
  plaintext[10] = _mm256_xor_si256(des_single__5_sbox_in__7__3,plaintext[10]);
  plaintext[28] = _mm256_xor_si256(des_single__5_sbox_in__7__4,plaintext[28]);
  des_single__6_sbox_in__0__1 = _mm256_xor_si256(key[51],plaintext[6]);
  des_single__6_sbox_in__0__2 = _mm256_xor_si256(key[56],plaintext[56]);
  des_single__6_sbox_in__0__3 = _mm256_xor_si256(key[10],plaintext[48]);
  des_single__6_sbox_in__0__4 = _mm256_xor_si256(key[0],plaintext[40]);
  des_single__6_sbox_in__0__5 = _mm256_xor_si256(key[25],plaintext[32]);
  des_single__6_sbox_in__0__6 = _mm256_xor_si256(key[58],plaintext[24]);
  sbox__0(des_single__6_sbox_in__0__1,des_single__6_sbox_in__0__2,des_single__6_sbox_in__0__3,des_single__6_sbox_in__0__4,des_single__6_sbox_in__0__5,des_single__6_sbox_in__0__6,&des_single__6_sbox_in__0__1,&des_single__6_sbox_in__0__2,&des_single__6_sbox_in__0__3,&des_single__6_sbox_in__0__4);
  plaintext[59] = _mm256_xor_si256(des_single__6_sbox_in__0__1,plaintext[59]);
  plaintext[61] = _mm256_xor_si256(des_single__6_sbox_in__0__2,plaintext[61]);
  plaintext[13] = _mm256_xor_si256(des_single__6_sbox_in__0__3,plaintext[13]);
  plaintext[15] = _mm256_xor_si256(des_single__6_sbox_in__0__4,plaintext[15]);
  des_single__6_sbox_in__1__1 = _mm256_xor_si256(key[9],plaintext[32]);
  des_single__6_sbox_in__1__2 = _mm256_xor_si256(key[33],plaintext[24]);
  des_single__6_sbox_in__1__3 = _mm256_xor_si256(key[43],plaintext[16]);
  des_single__6_sbox_in__1__4 = _mm256_xor_si256(key[50],plaintext[8]);
  des_single__6_sbox_in__1__5 = _mm256_xor_si256(key[24],plaintext[0]);
  des_single__6_sbox_in__1__6 = _mm256_xor_si256(key[18],plaintext[58]);
  sbox__1(des_single__6_sbox_in__1__1,des_single__6_sbox_in__1__2,des_single__6_sbox_in__1__3,des_single__6_sbox_in__1__4,des_single__6_sbox_in__1__5,des_single__6_sbox_in__1__6,&des_single__6_sbox_in__1__1,&des_single__6_sbox_in__1__2,&des_single__6_sbox_in__1__3,&des_single__6_sbox_in__1__4);
  plaintext[27] = _mm256_xor_si256(des_single__6_sbox_in__1__1,plaintext[27]);
  plaintext[39] = _mm256_xor_si256(des_single__6_sbox_in__1__2,plaintext[39]);
  plaintext[49] = _mm256_xor_si256(des_single__6_sbox_in__1__3,plaintext[49]);
  plaintext[53] = _mm256_xor_si256(des_single__6_sbox_in__1__4,plaintext[53]);
  des_single__6_sbox_in__2__1 = _mm256_xor_si256(key[8],plaintext[0]);
  des_single__6_sbox_in__2__2 = _mm256_xor_si256(key[40],plaintext[58]);
  des_single__6_sbox_in__2__3 = _mm256_xor_si256(key[2],plaintext[50]);
  des_single__6_sbox_in__2__4 = _mm256_xor_si256(key[1],plaintext[42]);
  des_single__6_sbox_in__2__5 = _mm256_xor_si256(key[49],plaintext[34]);
  des_single__6_sbox_in__2__6 = _mm256_xor_si256(key[34],plaintext[26]);
  sbox__2(des_single__6_sbox_in__2__1,des_single__6_sbox_in__2__2,des_single__6_sbox_in__2__3,des_single__6_sbox_in__2__4,des_single__6_sbox_in__2__5,des_single__6_sbox_in__2__6,&des_single__6_sbox_in__2__1,&des_single__6_sbox_in__2__2,&des_single__6_sbox_in__2__3,&des_single__6_sbox_in__2__4);
  plaintext[5] = _mm256_xor_si256(des_single__6_sbox_in__2__1,plaintext[5]);
  plaintext[3] = _mm256_xor_si256(des_single__6_sbox_in__2__2,plaintext[3]);
  plaintext[23] = _mm256_xor_si256(des_single__6_sbox_in__2__3,plaintext[23]);
  plaintext[17] = _mm256_xor_si256(des_single__6_sbox_in__2__4,plaintext[17]);
  des_single__6_sbox_in__3__1 = _mm256_xor_si256(key[35],plaintext[34]);
  des_single__6_sbox_in__3__2 = _mm256_xor_si256(key[42],plaintext[26]);
  des_single__6_sbox_in__3__3 = _mm256_xor_si256(key[41],plaintext[18]);
  des_single__6_sbox_in__3__4 = _mm256_xor_si256(key[32],plaintext[10]);
  des_single__6_sbox_in__3__5 = _mm256_xor_si256(key[59],plaintext[2]);
  des_single__6_sbox_in__3__6 = _mm256_xor_si256(key[17],plaintext[60]);
  sbox__3(des_single__6_sbox_in__3__1,des_single__6_sbox_in__3__2,des_single__6_sbox_in__3__3,des_single__6_sbox_in__3__4,des_single__6_sbox_in__3__5,des_single__6_sbox_in__3__6,&des_single__6_sbox_in__3__1,&des_single__6_sbox_in__3__2,&des_single__6_sbox_in__3__3,&des_single__6_sbox_in__3__4);
  plaintext[55] = _mm256_xor_si256(des_single__6_sbox_in__3__1,plaintext[55]);
  plaintext[37] = _mm256_xor_si256(des_single__6_sbox_in__3__2,plaintext[37]);
  plaintext[51] = _mm256_xor_si256(des_single__6_sbox_in__3__3,plaintext[51]);
  plaintext[57] = _mm256_xor_si256(des_single__6_sbox_in__3__4,plaintext[57]);
  des_single__6_sbox_in__4__1 = _mm256_xor_si256(key[27],plaintext[2]);
  des_single__6_sbox_in__4__2 = _mm256_xor_si256(key[6],plaintext[60]);
  des_single__6_sbox_in__4__3 = _mm256_xor_si256(key[13],plaintext[52]);
  des_single__6_sbox_in__4__4 = _mm256_xor_si256(key[28],plaintext[44]);
  des_single__6_sbox_in__4__5 = _mm256_xor_si256(key[46],plaintext[36]);
  des_single__6_sbox_in__4__6 = _mm256_xor_si256(key[45],plaintext[28]);
  sbox__4(des_single__6_sbox_in__4__1,des_single__6_sbox_in__4__2,des_single__6_sbox_in__4__3,des_single__6_sbox_in__4__4,des_single__6_sbox_in__4__5,des_single__6_sbox_in__4__6,&des_single__6_sbox_in__4__1,&des_single__6_sbox_in__4__2,&des_single__6_sbox_in__4__3,&des_single__6_sbox_in__4__4);
  plaintext[1] = _mm256_xor_si256(des_single__6_sbox_in__4__1,plaintext[1]);
  plaintext[19] = _mm256_xor_si256(des_single__6_sbox_in__4__2,plaintext[19]);
  plaintext[63] = _mm256_xor_si256(des_single__6_sbox_in__4__3,plaintext[63]);
  plaintext[41] = _mm256_xor_si256(des_single__6_sbox_in__4__4,plaintext[41]);
  des_single__6_sbox_in__5__1 = _mm256_xor_si256(key[21],plaintext[36]);
  des_single__6_sbox_in__5__2 = _mm256_xor_si256(key[4],plaintext[28]);
  des_single__6_sbox_in__5__3 = _mm256_xor_si256(key[14],plaintext[20]);
  des_single__6_sbox_in__5__4 = _mm256_xor_si256(key[62],plaintext[12]);
  des_single__6_sbox_in__5__5 = _mm256_xor_si256(key[60],plaintext[4]);
  des_single__6_sbox_in__5__6 = _mm256_xor_si256(key[38],plaintext[62]);
  sbox__5(des_single__6_sbox_in__5__1,des_single__6_sbox_in__5__2,des_single__6_sbox_in__5__3,des_single__6_sbox_in__5__4,des_single__6_sbox_in__5__5,des_single__6_sbox_in__5__6,&des_single__6_sbox_in__5__1,&des_single__6_sbox_in__5__2,&des_single__6_sbox_in__5__3,&des_single__6_sbox_in__5__4);
  plaintext[33] = _mm256_xor_si256(des_single__6_sbox_in__5__1,plaintext[33]);
  plaintext[31] = _mm256_xor_si256(des_single__6_sbox_in__5__2,plaintext[31]);
  plaintext[43] = _mm256_xor_si256(des_single__6_sbox_in__5__3,plaintext[43]);
  plaintext[45] = _mm256_xor_si256(des_single__6_sbox_in__5__4,plaintext[45]);
  des_single__6_sbox_in__6__1 = _mm256_xor_si256(key[3],plaintext[4]);
  des_single__6_sbox_in__6__2 = _mm256_xor_si256(key[30],plaintext[62]);
  des_single__6_sbox_in__6__3 = _mm256_xor_si256(key[12],plaintext[54]);
  des_single__6_sbox_in__6__4 = _mm256_xor_si256(key[37],plaintext[46]);
  des_single__6_sbox_in__6__5 = _mm256_xor_si256(key[52],plaintext[38]);
  des_single__6_sbox_in__6__6 = _mm256_xor_si256(key[61],plaintext[30]);
  sbox__6(des_single__6_sbox_in__6__1,des_single__6_sbox_in__6__2,des_single__6_sbox_in__6__3,des_single__6_sbox_in__6__4,des_single__6_sbox_in__6__5,des_single__6_sbox_in__6__6,&des_single__6_sbox_in__6__1,&des_single__6_sbox_in__6__2,&des_single__6_sbox_in__6__3,&des_single__6_sbox_in__6__4);
  plaintext[7] = _mm256_xor_si256(des_single__6_sbox_in__6__1,plaintext[7]);
  plaintext[35] = _mm256_xor_si256(des_single__6_sbox_in__6__2,plaintext[35]);
  plaintext[21] = _mm256_xor_si256(des_single__6_sbox_in__6__3,plaintext[21]);
  plaintext[9] = _mm256_xor_si256(des_single__6_sbox_in__6__4,plaintext[9]);
  des_single__6_sbox_in__7__1 = _mm256_xor_si256(key[54],plaintext[38]);
  des_single__6_sbox_in__7__2 = _mm256_xor_si256(key[19],plaintext[30]);
  des_single__6_sbox_in__7__3 = _mm256_xor_si256(key[22],plaintext[22]);
  des_single__6_sbox_in__7__4 = _mm256_xor_si256(key[36],plaintext[14]);
  des_single__6_sbox_in__7__5 = _mm256_xor_si256(key[29],plaintext[6]);
  des_single__6_sbox_in__7__6 = _mm256_xor_si256(key[5],plaintext[56]);
  sbox__7(des_single__6_sbox_in__7__1,des_single__6_sbox_in__7__2,des_single__6_sbox_in__7__3,des_single__6_sbox_in__7__4,des_single__6_sbox_in__7__5,des_single__6_sbox_in__7__6,&des_single__6_sbox_in__7__1,&des_single__6_sbox_in__7__2,&des_single__6_sbox_in__7__3,&des_single__6_sbox_in__7__4);
  plaintext[25] = _mm256_xor_si256(des_single__6_sbox_in__7__1,plaintext[25]);
  plaintext[47] = _mm256_xor_si256(des_single__6_sbox_in__7__2,plaintext[47]);
  plaintext[11] = _mm256_xor_si256(des_single__6_sbox_in__7__3,plaintext[11]);
  plaintext[29] = _mm256_xor_si256(des_single__6_sbox_in__7__4,plaintext[29]);
  des_single__7_sbox_in__0__1 = _mm256_xor_si256(key[35],plaintext[7]);
  des_single__7_sbox_in__0__2 = _mm256_xor_si256(key[40],plaintext[57]);
  des_single__7_sbox_in__0__3 = _mm256_xor_si256(key[59],plaintext[49]);
  des_single__7_sbox_in__0__4 = _mm256_xor_si256(key[49],plaintext[41]);
  des_single__7_sbox_in__0__5 = _mm256_xor_si256(key[9],plaintext[33]);
  des_single__7_sbox_in__0__6 = _mm256_xor_si256(key[42],plaintext[25]);
  sbox__0(des_single__7_sbox_in__0__1,des_single__7_sbox_in__0__2,des_single__7_sbox_in__0__3,des_single__7_sbox_in__0__4,des_single__7_sbox_in__0__5,des_single__7_sbox_in__0__6,&des_single__7_sbox_in__0__1,&des_single__7_sbox_in__0__2,&des_single__7_sbox_in__0__3,&des_single__7_sbox_in__0__4);
  plaintext[58] = _mm256_xor_si256(des_single__7_sbox_in__0__1,plaintext[58]);
  plaintext[60] = _mm256_xor_si256(des_single__7_sbox_in__0__2,plaintext[60]);
  plaintext[12] = _mm256_xor_si256(des_single__7_sbox_in__0__3,plaintext[12]);
  plaintext[14] = _mm256_xor_si256(des_single__7_sbox_in__0__4,plaintext[14]);
  des_single__7_sbox_in__1__1 = _mm256_xor_si256(key[58],plaintext[33]);
  des_single__7_sbox_in__1__2 = _mm256_xor_si256(key[17],plaintext[25]);
  des_single__7_sbox_in__1__3 = _mm256_xor_si256(key[56],plaintext[17]);
  des_single__7_sbox_in__1__4 = _mm256_xor_si256(key[34],plaintext[9]);
  des_single__7_sbox_in__1__5 = _mm256_xor_si256(key[8],plaintext[1]);
  des_single__7_sbox_in__1__6 = _mm256_xor_si256(key[2],plaintext[59]);
  sbox__1(des_single__7_sbox_in__1__1,des_single__7_sbox_in__1__2,des_single__7_sbox_in__1__3,des_single__7_sbox_in__1__4,des_single__7_sbox_in__1__5,des_single__7_sbox_in__1__6,&des_single__7_sbox_in__1__1,&des_single__7_sbox_in__1__2,&des_single__7_sbox_in__1__3,&des_single__7_sbox_in__1__4);
  plaintext[26] = _mm256_xor_si256(des_single__7_sbox_in__1__1,plaintext[26]);
  plaintext[38] = _mm256_xor_si256(des_single__7_sbox_in__1__2,plaintext[38]);
  plaintext[48] = _mm256_xor_si256(des_single__7_sbox_in__1__3,plaintext[48]);
  plaintext[52] = _mm256_xor_si256(des_single__7_sbox_in__1__4,plaintext[52]);
  des_single__7_sbox_in__2__1 = _mm256_xor_si256(key[57],plaintext[1]);
  des_single__7_sbox_in__2__2 = _mm256_xor_si256(key[24],plaintext[59]);
  des_single__7_sbox_in__2__3 = _mm256_xor_si256(key[51],plaintext[51]);
  des_single__7_sbox_in__2__4 = _mm256_xor_si256(key[50],plaintext[43]);
  des_single__7_sbox_in__2__5 = _mm256_xor_si256(key[33],plaintext[35]);
  des_single__7_sbox_in__2__6 = _mm256_xor_si256(key[18],plaintext[27]);
  sbox__2(des_single__7_sbox_in__2__1,des_single__7_sbox_in__2__2,des_single__7_sbox_in__2__3,des_single__7_sbox_in__2__4,des_single__7_sbox_in__2__5,des_single__7_sbox_in__2__6,&des_single__7_sbox_in__2__1,&des_single__7_sbox_in__2__2,&des_single__7_sbox_in__2__3,&des_single__7_sbox_in__2__4);
  plaintext[4] = _mm256_xor_si256(des_single__7_sbox_in__2__1,plaintext[4]);
  plaintext[2] = _mm256_xor_si256(des_single__7_sbox_in__2__2,plaintext[2]);
  plaintext[22] = _mm256_xor_si256(des_single__7_sbox_in__2__3,plaintext[22]);
  plaintext[16] = _mm256_xor_si256(des_single__7_sbox_in__2__4,plaintext[16]);
  des_single__7_sbox_in__3__1 = _mm256_xor_si256(key[48],plaintext[35]);
  des_single__7_sbox_in__3__2 = _mm256_xor_si256(key[26],plaintext[27]);
  des_single__7_sbox_in__3__3 = _mm256_xor_si256(key[25],plaintext[19]);
  des_single__7_sbox_in__3__4 = _mm256_xor_si256(key[16],plaintext[11]);
  des_single__7_sbox_in__3__5 = _mm256_xor_si256(key[43],plaintext[3]);
  des_single__7_sbox_in__3__6 = _mm256_xor_si256(key[1],plaintext[61]);
  sbox__3(des_single__7_sbox_in__3__1,des_single__7_sbox_in__3__2,des_single__7_sbox_in__3__3,des_single__7_sbox_in__3__4,des_single__7_sbox_in__3__5,des_single__7_sbox_in__3__6,&des_single__7_sbox_in__3__1,&des_single__7_sbox_in__3__2,&des_single__7_sbox_in__3__3,&des_single__7_sbox_in__3__4);
  plaintext[54] = _mm256_xor_si256(des_single__7_sbox_in__3__1,plaintext[54]);
  plaintext[36] = _mm256_xor_si256(des_single__7_sbox_in__3__2,plaintext[36]);
  plaintext[50] = _mm256_xor_si256(des_single__7_sbox_in__3__3,plaintext[50]);
  plaintext[56] = _mm256_xor_si256(des_single__7_sbox_in__3__4,plaintext[56]);
  des_single__7_sbox_in__4__1 = _mm256_xor_si256(key[11],plaintext[3]);
  des_single__7_sbox_in__4__2 = _mm256_xor_si256(key[53],plaintext[61]);
  des_single__7_sbox_in__4__3 = _mm256_xor_si256(key[60],plaintext[53]);
  des_single__7_sbox_in__4__4 = _mm256_xor_si256(key[12],plaintext[45]);
  des_single__7_sbox_in__4__5 = _mm256_xor_si256(key[30],plaintext[37]);
  des_single__7_sbox_in__4__6 = _mm256_xor_si256(key[29],plaintext[29]);
  sbox__4(des_single__7_sbox_in__4__1,des_single__7_sbox_in__4__2,des_single__7_sbox_in__4__3,des_single__7_sbox_in__4__4,des_single__7_sbox_in__4__5,des_single__7_sbox_in__4__6,&des_single__7_sbox_in__4__1,&des_single__7_sbox_in__4__2,&des_single__7_sbox_in__4__3,&des_single__7_sbox_in__4__4);
  plaintext[0] = _mm256_xor_si256(des_single__7_sbox_in__4__1,plaintext[0]);
  plaintext[18] = _mm256_xor_si256(des_single__7_sbox_in__4__2,plaintext[18]);
  plaintext[62] = _mm256_xor_si256(des_single__7_sbox_in__4__3,plaintext[62]);
  plaintext[40] = _mm256_xor_si256(des_single__7_sbox_in__4__4,plaintext[40]);
  des_single__7_sbox_in__5__1 = _mm256_xor_si256(key[5],plaintext[37]);
  des_single__7_sbox_in__5__2 = _mm256_xor_si256(key[19],plaintext[29]);
  des_single__7_sbox_in__5__3 = _mm256_xor_si256(key[61],plaintext[21]);
  des_single__7_sbox_in__5__4 = _mm256_xor_si256(key[46],plaintext[13]);
  des_single__7_sbox_in__5__5 = _mm256_xor_si256(key[44],plaintext[5]);
  des_single__7_sbox_in__5__6 = _mm256_xor_si256(key[22],plaintext[63]);
  sbox__5(des_single__7_sbox_in__5__1,des_single__7_sbox_in__5__2,des_single__7_sbox_in__5__3,des_single__7_sbox_in__5__4,des_single__7_sbox_in__5__5,des_single__7_sbox_in__5__6,&des_single__7_sbox_in__5__1,&des_single__7_sbox_in__5__2,&des_single__7_sbox_in__5__3,&des_single__7_sbox_in__5__4);
  plaintext[32] = _mm256_xor_si256(des_single__7_sbox_in__5__1,plaintext[32]);
  plaintext[30] = _mm256_xor_si256(des_single__7_sbox_in__5__2,plaintext[30]);
  plaintext[42] = _mm256_xor_si256(des_single__7_sbox_in__5__3,plaintext[42]);
  plaintext[44] = _mm256_xor_si256(des_single__7_sbox_in__5__4,plaintext[44]);
  des_single__7_sbox_in__6__1 = _mm256_xor_si256(key[54],plaintext[5]);
  des_single__7_sbox_in__6__2 = _mm256_xor_si256(key[14],plaintext[63]);
  des_single__7_sbox_in__6__3 = _mm256_xor_si256(key[27],plaintext[55]);
  des_single__7_sbox_in__6__4 = _mm256_xor_si256(key[21],plaintext[47]);
  des_single__7_sbox_in__6__5 = _mm256_xor_si256(key[36],plaintext[39]);
  des_single__7_sbox_in__6__6 = _mm256_xor_si256(key[45],plaintext[31]);
  sbox__6(des_single__7_sbox_in__6__1,des_single__7_sbox_in__6__2,des_single__7_sbox_in__6__3,des_single__7_sbox_in__6__4,des_single__7_sbox_in__6__5,des_single__7_sbox_in__6__6,&des_single__7_sbox_in__6__1,&des_single__7_sbox_in__6__2,&des_single__7_sbox_in__6__3,&des_single__7_sbox_in__6__4);
  plaintext[6] = _mm256_xor_si256(des_single__7_sbox_in__6__1,plaintext[6]);
  plaintext[34] = _mm256_xor_si256(des_single__7_sbox_in__6__2,plaintext[34]);
  plaintext[20] = _mm256_xor_si256(des_single__7_sbox_in__6__3,plaintext[20]);
  plaintext[8] = _mm256_xor_si256(des_single__7_sbox_in__6__4,plaintext[8]);
  des_single__7_sbox_in__7__1 = _mm256_xor_si256(key[38],plaintext[39]);
  des_single__7_sbox_in__7__2 = _mm256_xor_si256(key[3],plaintext[31]);
  des_single__7_sbox_in__7__3 = _mm256_xor_si256(key[6],plaintext[23]);
  des_single__7_sbox_in__7__4 = _mm256_xor_si256(key[20],plaintext[15]);
  des_single__7_sbox_in__7__5 = _mm256_xor_si256(key[13],plaintext[7]);
  des_single__7_sbox_in__7__6 = _mm256_xor_si256(key[52],plaintext[57]);
  sbox__7(des_single__7_sbox_in__7__1,des_single__7_sbox_in__7__2,des_single__7_sbox_in__7__3,des_single__7_sbox_in__7__4,des_single__7_sbox_in__7__5,des_single__7_sbox_in__7__6,&des_single__7_sbox_in__7__1,&des_single__7_sbox_in__7__2,&des_single__7_sbox_in__7__3,&des_single__7_sbox_in__7__4);
  plaintext[24] = _mm256_xor_si256(des_single__7_sbox_in__7__1,plaintext[24]);
  plaintext[46] = _mm256_xor_si256(des_single__7_sbox_in__7__2,plaintext[46]);
  plaintext[10] = _mm256_xor_si256(des_single__7_sbox_in__7__3,plaintext[10]);
  plaintext[28] = _mm256_xor_si256(des_single__7_sbox_in__7__4,plaintext[28]);
  des_single__8_sbox_in__0__1 = _mm256_xor_si256(key[56],plaintext[6]);
  des_single__8_sbox_in__0__2 = _mm256_xor_si256(key[32],plaintext[56]);
  des_single__8_sbox_in__0__3 = _mm256_xor_si256(key[51],plaintext[48]);
  des_single__8_sbox_in__0__4 = _mm256_xor_si256(key[41],plaintext[40]);
  des_single__8_sbox_in__0__5 = _mm256_xor_si256(key[1],plaintext[32]);
  des_single__8_sbox_in__0__6 = _mm256_xor_si256(key[34],plaintext[24]);
  sbox__0(des_single__8_sbox_in__0__1,des_single__8_sbox_in__0__2,des_single__8_sbox_in__0__3,des_single__8_sbox_in__0__4,des_single__8_sbox_in__0__5,des_single__8_sbox_in__0__6,&des_single__8_sbox_in__0__1,&des_single__8_sbox_in__0__2,&des_single__8_sbox_in__0__3,&des_single__8_sbox_in__0__4);
  plaintext[59] = _mm256_xor_si256(des_single__8_sbox_in__0__1,plaintext[59]);
  plaintext[61] = _mm256_xor_si256(des_single__8_sbox_in__0__2,plaintext[61]);
  plaintext[13] = _mm256_xor_si256(des_single__8_sbox_in__0__3,plaintext[13]);
  plaintext[15] = _mm256_xor_si256(des_single__8_sbox_in__0__4,plaintext[15]);
  des_single__8_sbox_in__1__1 = _mm256_xor_si256(key[50],plaintext[32]);
  des_single__8_sbox_in__1__2 = _mm256_xor_si256(key[9],plaintext[24]);
  des_single__8_sbox_in__1__3 = _mm256_xor_si256(key[48],plaintext[16]);
  des_single__8_sbox_in__1__4 = _mm256_xor_si256(key[26],plaintext[8]);
  des_single__8_sbox_in__1__5 = _mm256_xor_si256(key[0],plaintext[0]);
  des_single__8_sbox_in__1__6 = _mm256_xor_si256(key[59],plaintext[58]);
  sbox__1(des_single__8_sbox_in__1__1,des_single__8_sbox_in__1__2,des_single__8_sbox_in__1__3,des_single__8_sbox_in__1__4,des_single__8_sbox_in__1__5,des_single__8_sbox_in__1__6,&des_single__8_sbox_in__1__1,&des_single__8_sbox_in__1__2,&des_single__8_sbox_in__1__3,&des_single__8_sbox_in__1__4);
  plaintext[27] = _mm256_xor_si256(des_single__8_sbox_in__1__1,plaintext[27]);
  plaintext[39] = _mm256_xor_si256(des_single__8_sbox_in__1__2,plaintext[39]);
  plaintext[49] = _mm256_xor_si256(des_single__8_sbox_in__1__3,plaintext[49]);
  plaintext[53] = _mm256_xor_si256(des_single__8_sbox_in__1__4,plaintext[53]);
  des_single__8_sbox_in__2__1 = _mm256_xor_si256(key[49],plaintext[0]);
  des_single__8_sbox_in__2__2 = _mm256_xor_si256(key[16],plaintext[58]);
  des_single__8_sbox_in__2__3 = _mm256_xor_si256(key[43],plaintext[50]);
  des_single__8_sbox_in__2__4 = _mm256_xor_si256(key[42],plaintext[42]);
  des_single__8_sbox_in__2__5 = _mm256_xor_si256(key[25],plaintext[34]);
  des_single__8_sbox_in__2__6 = _mm256_xor_si256(key[10],plaintext[26]);
  sbox__2(des_single__8_sbox_in__2__1,des_single__8_sbox_in__2__2,des_single__8_sbox_in__2__3,des_single__8_sbox_in__2__4,des_single__8_sbox_in__2__5,des_single__8_sbox_in__2__6,&des_single__8_sbox_in__2__1,&des_single__8_sbox_in__2__2,&des_single__8_sbox_in__2__3,&des_single__8_sbox_in__2__4);
  plaintext[5] = _mm256_xor_si256(des_single__8_sbox_in__2__1,plaintext[5]);
  plaintext[3] = _mm256_xor_si256(des_single__8_sbox_in__2__2,plaintext[3]);
  plaintext[23] = _mm256_xor_si256(des_single__8_sbox_in__2__3,plaintext[23]);
  plaintext[17] = _mm256_xor_si256(des_single__8_sbox_in__2__4,plaintext[17]);
  des_single__8_sbox_in__3__1 = _mm256_xor_si256(key[40],plaintext[34]);
  des_single__8_sbox_in__3__2 = _mm256_xor_si256(key[18],plaintext[26]);
  des_single__8_sbox_in__3__3 = _mm256_xor_si256(key[17],plaintext[18]);
  des_single__8_sbox_in__3__4 = _mm256_xor_si256(key[8],plaintext[10]);
  des_single__8_sbox_in__3__5 = _mm256_xor_si256(key[35],plaintext[2]);
  des_single__8_sbox_in__3__6 = _mm256_xor_si256(key[58],plaintext[60]);
  sbox__3(des_single__8_sbox_in__3__1,des_single__8_sbox_in__3__2,des_single__8_sbox_in__3__3,des_single__8_sbox_in__3__4,des_single__8_sbox_in__3__5,des_single__8_sbox_in__3__6,&des_single__8_sbox_in__3__1,&des_single__8_sbox_in__3__2,&des_single__8_sbox_in__3__3,&des_single__8_sbox_in__3__4);
  plaintext[55] = _mm256_xor_si256(des_single__8_sbox_in__3__1,plaintext[55]);
  plaintext[37] = _mm256_xor_si256(des_single__8_sbox_in__3__2,plaintext[37]);
  plaintext[51] = _mm256_xor_si256(des_single__8_sbox_in__3__3,plaintext[51]);
  plaintext[57] = _mm256_xor_si256(des_single__8_sbox_in__3__4,plaintext[57]);
  des_single__8_sbox_in__4__1 = _mm256_xor_si256(key[3],plaintext[2]);
  des_single__8_sbox_in__4__2 = _mm256_xor_si256(key[45],plaintext[60]);
  des_single__8_sbox_in__4__3 = _mm256_xor_si256(key[52],plaintext[52]);
  des_single__8_sbox_in__4__4 = _mm256_xor_si256(key[4],plaintext[44]);
  des_single__8_sbox_in__4__5 = _mm256_xor_si256(key[22],plaintext[36]);
  des_single__8_sbox_in__4__6 = _mm256_xor_si256(key[21],plaintext[28]);
  sbox__4(des_single__8_sbox_in__4__1,des_single__8_sbox_in__4__2,des_single__8_sbox_in__4__3,des_single__8_sbox_in__4__4,des_single__8_sbox_in__4__5,des_single__8_sbox_in__4__6,&des_single__8_sbox_in__4__1,&des_single__8_sbox_in__4__2,&des_single__8_sbox_in__4__3,&des_single__8_sbox_in__4__4);
  plaintext[1] = _mm256_xor_si256(des_single__8_sbox_in__4__1,plaintext[1]);
  plaintext[19] = _mm256_xor_si256(des_single__8_sbox_in__4__2,plaintext[19]);
  plaintext[63] = _mm256_xor_si256(des_single__8_sbox_in__4__3,plaintext[63]);
  plaintext[41] = _mm256_xor_si256(des_single__8_sbox_in__4__4,plaintext[41]);
  des_single__8_sbox_in__5__1 = _mm256_xor_si256(key[60],plaintext[36]);
  des_single__8_sbox_in__5__2 = _mm256_xor_si256(key[11],plaintext[28]);
  des_single__8_sbox_in__5__3 = _mm256_xor_si256(key[53],plaintext[20]);
  des_single__8_sbox_in__5__4 = _mm256_xor_si256(key[38],plaintext[12]);
  des_single__8_sbox_in__5__5 = _mm256_xor_si256(key[36],plaintext[4]);
  des_single__8_sbox_in__5__6 = _mm256_xor_si256(key[14],plaintext[62]);
  sbox__5(des_single__8_sbox_in__5__1,des_single__8_sbox_in__5__2,des_single__8_sbox_in__5__3,des_single__8_sbox_in__5__4,des_single__8_sbox_in__5__5,des_single__8_sbox_in__5__6,&des_single__8_sbox_in__5__1,&des_single__8_sbox_in__5__2,&des_single__8_sbox_in__5__3,&des_single__8_sbox_in__5__4);
  plaintext[33] = _mm256_xor_si256(des_single__8_sbox_in__5__1,plaintext[33]);
  plaintext[31] = _mm256_xor_si256(des_single__8_sbox_in__5__2,plaintext[31]);
  plaintext[43] = _mm256_xor_si256(des_single__8_sbox_in__5__3,plaintext[43]);
  plaintext[45] = _mm256_xor_si256(des_single__8_sbox_in__5__4,plaintext[45]);
  des_single__8_sbox_in__6__1 = _mm256_xor_si256(key[46],plaintext[4]);
  des_single__8_sbox_in__6__2 = _mm256_xor_si256(key[6],plaintext[62]);
  des_single__8_sbox_in__6__3 = _mm256_xor_si256(key[19],plaintext[54]);
  des_single__8_sbox_in__6__4 = _mm256_xor_si256(key[13],plaintext[46]);
  des_single__8_sbox_in__6__5 = _mm256_xor_si256(key[28],plaintext[38]);
  des_single__8_sbox_in__6__6 = _mm256_xor_si256(key[37],plaintext[30]);
  sbox__6(des_single__8_sbox_in__6__1,des_single__8_sbox_in__6__2,des_single__8_sbox_in__6__3,des_single__8_sbox_in__6__4,des_single__8_sbox_in__6__5,des_single__8_sbox_in__6__6,&des_single__8_sbox_in__6__1,&des_single__8_sbox_in__6__2,&des_single__8_sbox_in__6__3,&des_single__8_sbox_in__6__4);
  plaintext[7] = _mm256_xor_si256(des_single__8_sbox_in__6__1,plaintext[7]);
  plaintext[35] = _mm256_xor_si256(des_single__8_sbox_in__6__2,plaintext[35]);
  plaintext[21] = _mm256_xor_si256(des_single__8_sbox_in__6__3,plaintext[21]);
  plaintext[9] = _mm256_xor_si256(des_single__8_sbox_in__6__4,plaintext[9]);
  des_single__8_sbox_in__7__1 = _mm256_xor_si256(key[30],plaintext[38]);
  des_single__8_sbox_in__7__2 = _mm256_xor_si256(key[62],plaintext[30]);
  des_single__8_sbox_in__7__3 = _mm256_xor_si256(key[61],plaintext[22]);
  des_single__8_sbox_in__7__4 = _mm256_xor_si256(key[12],plaintext[14]);
  des_single__8_sbox_in__7__5 = _mm256_xor_si256(key[5],plaintext[6]);
  des_single__8_sbox_in__7__6 = _mm256_xor_si256(key[44],plaintext[56]);
  sbox__7(des_single__8_sbox_in__7__1,des_single__8_sbox_in__7__2,des_single__8_sbox_in__7__3,des_single__8_sbox_in__7__4,des_single__8_sbox_in__7__5,des_single__8_sbox_in__7__6,&des_single__8_sbox_in__7__1,&des_single__8_sbox_in__7__2,&des_single__8_sbox_in__7__3,&des_single__8_sbox_in__7__4);
  plaintext[25] = _mm256_xor_si256(des_single__8_sbox_in__7__1,plaintext[25]);
  plaintext[47] = _mm256_xor_si256(des_single__8_sbox_in__7__2,plaintext[47]);
  plaintext[11] = _mm256_xor_si256(des_single__8_sbox_in__7__3,plaintext[11]);
  plaintext[29] = _mm256_xor_si256(des_single__8_sbox_in__7__4,plaintext[29]);
  des_single__9_sbox_in__0__1 = _mm256_xor_si256(key[40],plaintext[7]);
  des_single__9_sbox_in__0__2 = _mm256_xor_si256(key[16],plaintext[57]);
  des_single__9_sbox_in__0__3 = _mm256_xor_si256(key[35],plaintext[49]);
  des_single__9_sbox_in__0__4 = _mm256_xor_si256(key[25],plaintext[41]);
  des_single__9_sbox_in__0__5 = _mm256_xor_si256(key[50],plaintext[33]);
  des_single__9_sbox_in__0__6 = _mm256_xor_si256(key[18],plaintext[25]);
  sbox__0(des_single__9_sbox_in__0__1,des_single__9_sbox_in__0__2,des_single__9_sbox_in__0__3,des_single__9_sbox_in__0__4,des_single__9_sbox_in__0__5,des_single__9_sbox_in__0__6,&des_single__9_sbox_in__0__1,&des_single__9_sbox_in__0__2,&des_single__9_sbox_in__0__3,&des_single__9_sbox_in__0__4);
  plaintext[58] = _mm256_xor_si256(des_single__9_sbox_in__0__1,plaintext[58]);
  plaintext[60] = _mm256_xor_si256(des_single__9_sbox_in__0__2,plaintext[60]);
  plaintext[12] = _mm256_xor_si256(des_single__9_sbox_in__0__3,plaintext[12]);
  plaintext[14] = _mm256_xor_si256(des_single__9_sbox_in__0__4,plaintext[14]);
  des_single__9_sbox_in__1__1 = _mm256_xor_si256(key[34],plaintext[33]);
  des_single__9_sbox_in__1__2 = _mm256_xor_si256(key[58],plaintext[25]);
  des_single__9_sbox_in__1__3 = _mm256_xor_si256(key[32],plaintext[17]);
  des_single__9_sbox_in__1__4 = _mm256_xor_si256(key[10],plaintext[9]);
  des_single__9_sbox_in__1__5 = _mm256_xor_si256(key[49],plaintext[1]);
  des_single__9_sbox_in__1__6 = _mm256_xor_si256(key[43],plaintext[59]);
  sbox__1(des_single__9_sbox_in__1__1,des_single__9_sbox_in__1__2,des_single__9_sbox_in__1__3,des_single__9_sbox_in__1__4,des_single__9_sbox_in__1__5,des_single__9_sbox_in__1__6,&des_single__9_sbox_in__1__1,&des_single__9_sbox_in__1__2,&des_single__9_sbox_in__1__3,&des_single__9_sbox_in__1__4);
  plaintext[26] = _mm256_xor_si256(des_single__9_sbox_in__1__1,plaintext[26]);
  plaintext[38] = _mm256_xor_si256(des_single__9_sbox_in__1__2,plaintext[38]);
  plaintext[48] = _mm256_xor_si256(des_single__9_sbox_in__1__3,plaintext[48]);
  plaintext[52] = _mm256_xor_si256(des_single__9_sbox_in__1__4,plaintext[52]);
  des_single__9_sbox_in__2__1 = _mm256_xor_si256(key[33],plaintext[1]);
  des_single__9_sbox_in__2__2 = _mm256_xor_si256(key[0],plaintext[59]);
  des_single__9_sbox_in__2__3 = _mm256_xor_si256(key[56],plaintext[51]);
  des_single__9_sbox_in__2__4 = _mm256_xor_si256(key[26],plaintext[43]);
  des_single__9_sbox_in__2__5 = _mm256_xor_si256(key[9],plaintext[35]);
  des_single__9_sbox_in__2__6 = _mm256_xor_si256(key[59],plaintext[27]);
  sbox__2(des_single__9_sbox_in__2__1,des_single__9_sbox_in__2__2,des_single__9_sbox_in__2__3,des_single__9_sbox_in__2__4,des_single__9_sbox_in__2__5,des_single__9_sbox_in__2__6,&des_single__9_sbox_in__2__1,&des_single__9_sbox_in__2__2,&des_single__9_sbox_in__2__3,&des_single__9_sbox_in__2__4);
  plaintext[4] = _mm256_xor_si256(des_single__9_sbox_in__2__1,plaintext[4]);
  plaintext[2] = _mm256_xor_si256(des_single__9_sbox_in__2__2,plaintext[2]);
  plaintext[22] = _mm256_xor_si256(des_single__9_sbox_in__2__3,plaintext[22]);
  plaintext[16] = _mm256_xor_si256(des_single__9_sbox_in__2__4,plaintext[16]);
  des_single__9_sbox_in__3__1 = _mm256_xor_si256(key[24],plaintext[35]);
  des_single__9_sbox_in__3__2 = _mm256_xor_si256(key[2],plaintext[27]);
  des_single__9_sbox_in__3__3 = _mm256_xor_si256(key[1],plaintext[19]);
  des_single__9_sbox_in__3__4 = _mm256_xor_si256(key[57],plaintext[11]);
  des_single__9_sbox_in__3__5 = _mm256_xor_si256(key[48],plaintext[3]);
  des_single__9_sbox_in__3__6 = _mm256_xor_si256(key[42],plaintext[61]);
  sbox__3(des_single__9_sbox_in__3__1,des_single__9_sbox_in__3__2,des_single__9_sbox_in__3__3,des_single__9_sbox_in__3__4,des_single__9_sbox_in__3__5,des_single__9_sbox_in__3__6,&des_single__9_sbox_in__3__1,&des_single__9_sbox_in__3__2,&des_single__9_sbox_in__3__3,&des_single__9_sbox_in__3__4);
  plaintext[54] = _mm256_xor_si256(des_single__9_sbox_in__3__1,plaintext[54]);
  plaintext[36] = _mm256_xor_si256(des_single__9_sbox_in__3__2,plaintext[36]);
  plaintext[50] = _mm256_xor_si256(des_single__9_sbox_in__3__3,plaintext[50]);
  plaintext[56] = _mm256_xor_si256(des_single__9_sbox_in__3__4,plaintext[56]);
  des_single__9_sbox_in__4__1 = _mm256_xor_si256(key[54],plaintext[3]);
  des_single__9_sbox_in__4__2 = _mm256_xor_si256(key[29],plaintext[61]);
  des_single__9_sbox_in__4__3 = _mm256_xor_si256(key[36],plaintext[53]);
  des_single__9_sbox_in__4__4 = _mm256_xor_si256(key[19],plaintext[45]);
  des_single__9_sbox_in__4__5 = _mm256_xor_si256(key[6],plaintext[37]);
  des_single__9_sbox_in__4__6 = _mm256_xor_si256(key[5],plaintext[29]);
  sbox__4(des_single__9_sbox_in__4__1,des_single__9_sbox_in__4__2,des_single__9_sbox_in__4__3,des_single__9_sbox_in__4__4,des_single__9_sbox_in__4__5,des_single__9_sbox_in__4__6,&des_single__9_sbox_in__4__1,&des_single__9_sbox_in__4__2,&des_single__9_sbox_in__4__3,&des_single__9_sbox_in__4__4);
  plaintext[0] = _mm256_xor_si256(des_single__9_sbox_in__4__1,plaintext[0]);
  plaintext[18] = _mm256_xor_si256(des_single__9_sbox_in__4__2,plaintext[18]);
  plaintext[62] = _mm256_xor_si256(des_single__9_sbox_in__4__3,plaintext[62]);
  plaintext[40] = _mm256_xor_si256(des_single__9_sbox_in__4__4,plaintext[40]);
  des_single__9_sbox_in__5__1 = _mm256_xor_si256(key[44],plaintext[37]);
  des_single__9_sbox_in__5__2 = _mm256_xor_si256(key[62],plaintext[29]);
  des_single__9_sbox_in__5__3 = _mm256_xor_si256(key[37],plaintext[21]);
  des_single__9_sbox_in__5__4 = _mm256_xor_si256(key[22],plaintext[13]);
  des_single__9_sbox_in__5__5 = _mm256_xor_si256(key[20],plaintext[5]);
  des_single__9_sbox_in__5__6 = _mm256_xor_si256(key[61],plaintext[63]);
  sbox__5(des_single__9_sbox_in__5__1,des_single__9_sbox_in__5__2,des_single__9_sbox_in__5__3,des_single__9_sbox_in__5__4,des_single__9_sbox_in__5__5,des_single__9_sbox_in__5__6,&des_single__9_sbox_in__5__1,&des_single__9_sbox_in__5__2,&des_single__9_sbox_in__5__3,&des_single__9_sbox_in__5__4);
  plaintext[32] = _mm256_xor_si256(des_single__9_sbox_in__5__1,plaintext[32]);
  plaintext[30] = _mm256_xor_si256(des_single__9_sbox_in__5__2,plaintext[30]);
  plaintext[42] = _mm256_xor_si256(des_single__9_sbox_in__5__3,plaintext[42]);
  plaintext[44] = _mm256_xor_si256(des_single__9_sbox_in__5__4,plaintext[44]);
  des_single__9_sbox_in__6__1 = _mm256_xor_si256(key[30],plaintext[5]);
  des_single__9_sbox_in__6__2 = _mm256_xor_si256(key[53],plaintext[63]);
  des_single__9_sbox_in__6__3 = _mm256_xor_si256(key[3],plaintext[55]);
  des_single__9_sbox_in__6__4 = _mm256_xor_si256(key[60],plaintext[47]);
  des_single__9_sbox_in__6__5 = _mm256_xor_si256(key[12],plaintext[39]);
  des_single__9_sbox_in__6__6 = _mm256_xor_si256(key[21],plaintext[31]);
  sbox__6(des_single__9_sbox_in__6__1,des_single__9_sbox_in__6__2,des_single__9_sbox_in__6__3,des_single__9_sbox_in__6__4,des_single__9_sbox_in__6__5,des_single__9_sbox_in__6__6,&des_single__9_sbox_in__6__1,&des_single__9_sbox_in__6__2,&des_single__9_sbox_in__6__3,&des_single__9_sbox_in__6__4);
  plaintext[6] = _mm256_xor_si256(des_single__9_sbox_in__6__1,plaintext[6]);
  plaintext[34] = _mm256_xor_si256(des_single__9_sbox_in__6__2,plaintext[34]);
  plaintext[20] = _mm256_xor_si256(des_single__9_sbox_in__6__3,plaintext[20]);
  plaintext[8] = _mm256_xor_si256(des_single__9_sbox_in__6__4,plaintext[8]);
  des_single__9_sbox_in__7__1 = _mm256_xor_si256(key[14],plaintext[39]);
  des_single__9_sbox_in__7__2 = _mm256_xor_si256(key[46],plaintext[31]);
  des_single__9_sbox_in__7__3 = _mm256_xor_si256(key[45],plaintext[23]);
  des_single__9_sbox_in__7__4 = _mm256_xor_si256(key[27],plaintext[15]);
  des_single__9_sbox_in__7__5 = _mm256_xor_si256(key[52],plaintext[7]);
  des_single__9_sbox_in__7__6 = _mm256_xor_si256(key[28],plaintext[57]);
  sbox__7(des_single__9_sbox_in__7__1,des_single__9_sbox_in__7__2,des_single__9_sbox_in__7__3,des_single__9_sbox_in__7__4,des_single__9_sbox_in__7__5,des_single__9_sbox_in__7__6,&des_single__9_sbox_in__7__1,&des_single__9_sbox_in__7__2,&des_single__9_sbox_in__7__3,&des_single__9_sbox_in__7__4);
  plaintext[24] = _mm256_xor_si256(des_single__9_sbox_in__7__1,plaintext[24]);
  plaintext[46] = _mm256_xor_si256(des_single__9_sbox_in__7__2,plaintext[46]);
  plaintext[10] = _mm256_xor_si256(des_single__9_sbox_in__7__3,plaintext[10]);
  plaintext[28] = _mm256_xor_si256(des_single__9_sbox_in__7__4,plaintext[28]);
  des_single__10_sbox_in__0__1 = _mm256_xor_si256(key[24],plaintext[6]);
  des_single__10_sbox_in__0__2 = _mm256_xor_si256(key[0],plaintext[56]);
  des_single__10_sbox_in__0__3 = _mm256_xor_si256(key[48],plaintext[48]);
  des_single__10_sbox_in__0__4 = _mm256_xor_si256(key[9],plaintext[40]);
  des_single__10_sbox_in__0__5 = _mm256_xor_si256(key[34],plaintext[32]);
  des_single__10_sbox_in__0__6 = _mm256_xor_si256(key[2],plaintext[24]);
  sbox__0(des_single__10_sbox_in__0__1,des_single__10_sbox_in__0__2,des_single__10_sbox_in__0__3,des_single__10_sbox_in__0__4,des_single__10_sbox_in__0__5,des_single__10_sbox_in__0__6,&des_single__10_sbox_in__0__1,&des_single__10_sbox_in__0__2,&des_single__10_sbox_in__0__3,&des_single__10_sbox_in__0__4);
  plaintext[59] = _mm256_xor_si256(des_single__10_sbox_in__0__1,plaintext[59]);
  plaintext[61] = _mm256_xor_si256(des_single__10_sbox_in__0__2,plaintext[61]);
  plaintext[13] = _mm256_xor_si256(des_single__10_sbox_in__0__3,plaintext[13]);
  plaintext[15] = _mm256_xor_si256(des_single__10_sbox_in__0__4,plaintext[15]);
  des_single__10_sbox_in__1__1 = _mm256_xor_si256(key[18],plaintext[32]);
  des_single__10_sbox_in__1__2 = _mm256_xor_si256(key[42],plaintext[24]);
  des_single__10_sbox_in__1__3 = _mm256_xor_si256(key[16],plaintext[16]);
  des_single__10_sbox_in__1__4 = _mm256_xor_si256(key[59],plaintext[8]);
  des_single__10_sbox_in__1__5 = _mm256_xor_si256(key[33],plaintext[0]);
  des_single__10_sbox_in__1__6 = _mm256_xor_si256(key[56],plaintext[58]);
  sbox__1(des_single__10_sbox_in__1__1,des_single__10_sbox_in__1__2,des_single__10_sbox_in__1__3,des_single__10_sbox_in__1__4,des_single__10_sbox_in__1__5,des_single__10_sbox_in__1__6,&des_single__10_sbox_in__1__1,&des_single__10_sbox_in__1__2,&des_single__10_sbox_in__1__3,&des_single__10_sbox_in__1__4);
  plaintext[27] = _mm256_xor_si256(des_single__10_sbox_in__1__1,plaintext[27]);
  plaintext[39] = _mm256_xor_si256(des_single__10_sbox_in__1__2,plaintext[39]);
  plaintext[49] = _mm256_xor_si256(des_single__10_sbox_in__1__3,plaintext[49]);
  plaintext[53] = _mm256_xor_si256(des_single__10_sbox_in__1__4,plaintext[53]);
  des_single__10_sbox_in__2__1 = _mm256_xor_si256(key[17],plaintext[0]);
  des_single__10_sbox_in__2__2 = _mm256_xor_si256(key[49],plaintext[58]);
  des_single__10_sbox_in__2__3 = _mm256_xor_si256(key[40],plaintext[50]);
  des_single__10_sbox_in__2__4 = _mm256_xor_si256(key[10],plaintext[42]);
  des_single__10_sbox_in__2__5 = _mm256_xor_si256(key[58],plaintext[34]);
  des_single__10_sbox_in__2__6 = _mm256_xor_si256(key[43],plaintext[26]);
  sbox__2(des_single__10_sbox_in__2__1,des_single__10_sbox_in__2__2,des_single__10_sbox_in__2__3,des_single__10_sbox_in__2__4,des_single__10_sbox_in__2__5,des_single__10_sbox_in__2__6,&des_single__10_sbox_in__2__1,&des_single__10_sbox_in__2__2,&des_single__10_sbox_in__2__3,&des_single__10_sbox_in__2__4);
  plaintext[5] = _mm256_xor_si256(des_single__10_sbox_in__2__1,plaintext[5]);
  plaintext[3] = _mm256_xor_si256(des_single__10_sbox_in__2__2,plaintext[3]);
  plaintext[23] = _mm256_xor_si256(des_single__10_sbox_in__2__3,plaintext[23]);
  plaintext[17] = _mm256_xor_si256(des_single__10_sbox_in__2__4,plaintext[17]);
  des_single__10_sbox_in__3__1 = _mm256_xor_si256(key[8],plaintext[34]);
  des_single__10_sbox_in__3__2 = _mm256_xor_si256(key[51],plaintext[26]);
  des_single__10_sbox_in__3__3 = _mm256_xor_si256(key[50],plaintext[18]);
  des_single__10_sbox_in__3__4 = _mm256_xor_si256(key[41],plaintext[10]);
  des_single__10_sbox_in__3__5 = _mm256_xor_si256(key[32],plaintext[2]);
  des_single__10_sbox_in__3__6 = _mm256_xor_si256(key[26],plaintext[60]);
  sbox__3(des_single__10_sbox_in__3__1,des_single__10_sbox_in__3__2,des_single__10_sbox_in__3__3,des_single__10_sbox_in__3__4,des_single__10_sbox_in__3__5,des_single__10_sbox_in__3__6,&des_single__10_sbox_in__3__1,&des_single__10_sbox_in__3__2,&des_single__10_sbox_in__3__3,&des_single__10_sbox_in__3__4);
  plaintext[55] = _mm256_xor_si256(des_single__10_sbox_in__3__1,plaintext[55]);
  plaintext[37] = _mm256_xor_si256(des_single__10_sbox_in__3__2,plaintext[37]);
  plaintext[51] = _mm256_xor_si256(des_single__10_sbox_in__3__3,plaintext[51]);
  plaintext[57] = _mm256_xor_si256(des_single__10_sbox_in__3__4,plaintext[57]);
  des_single__10_sbox_in__4__1 = _mm256_xor_si256(key[38],plaintext[2]);
  des_single__10_sbox_in__4__2 = _mm256_xor_si256(key[13],plaintext[60]);
  des_single__10_sbox_in__4__3 = _mm256_xor_si256(key[20],plaintext[52]);
  des_single__10_sbox_in__4__4 = _mm256_xor_si256(key[3],plaintext[44]);
  des_single__10_sbox_in__4__5 = _mm256_xor_si256(key[53],plaintext[36]);
  des_single__10_sbox_in__4__6 = _mm256_xor_si256(key[52],plaintext[28]);
  sbox__4(des_single__10_sbox_in__4__1,des_single__10_sbox_in__4__2,des_single__10_sbox_in__4__3,des_single__10_sbox_in__4__4,des_single__10_sbox_in__4__5,des_single__10_sbox_in__4__6,&des_single__10_sbox_in__4__1,&des_single__10_sbox_in__4__2,&des_single__10_sbox_in__4__3,&des_single__10_sbox_in__4__4);
  plaintext[1] = _mm256_xor_si256(des_single__10_sbox_in__4__1,plaintext[1]);
  plaintext[19] = _mm256_xor_si256(des_single__10_sbox_in__4__2,plaintext[19]);
  plaintext[63] = _mm256_xor_si256(des_single__10_sbox_in__4__3,plaintext[63]);
  plaintext[41] = _mm256_xor_si256(des_single__10_sbox_in__4__4,plaintext[41]);
  des_single__10_sbox_in__5__1 = _mm256_xor_si256(key[28],plaintext[36]);
  des_single__10_sbox_in__5__2 = _mm256_xor_si256(key[46],plaintext[28]);
  des_single__10_sbox_in__5__3 = _mm256_xor_si256(key[21],plaintext[20]);
  des_single__10_sbox_in__5__4 = _mm256_xor_si256(key[6],plaintext[12]);
  des_single__10_sbox_in__5__5 = _mm256_xor_si256(key[4],plaintext[4]);
  des_single__10_sbox_in__5__6 = _mm256_xor_si256(key[45],plaintext[62]);
  sbox__5(des_single__10_sbox_in__5__1,des_single__10_sbox_in__5__2,des_single__10_sbox_in__5__3,des_single__10_sbox_in__5__4,des_single__10_sbox_in__5__5,des_single__10_sbox_in__5__6,&des_single__10_sbox_in__5__1,&des_single__10_sbox_in__5__2,&des_single__10_sbox_in__5__3,&des_single__10_sbox_in__5__4);
  plaintext[33] = _mm256_xor_si256(des_single__10_sbox_in__5__1,plaintext[33]);
  plaintext[31] = _mm256_xor_si256(des_single__10_sbox_in__5__2,plaintext[31]);
  plaintext[43] = _mm256_xor_si256(des_single__10_sbox_in__5__3,plaintext[43]);
  plaintext[45] = _mm256_xor_si256(des_single__10_sbox_in__5__4,plaintext[45]);
  des_single__10_sbox_in__6__1 = _mm256_xor_si256(key[14],plaintext[4]);
  des_single__10_sbox_in__6__2 = _mm256_xor_si256(key[37],plaintext[62]);
  des_single__10_sbox_in__6__3 = _mm256_xor_si256(key[54],plaintext[54]);
  des_single__10_sbox_in__6__4 = _mm256_xor_si256(key[44],plaintext[46]);
  des_single__10_sbox_in__6__5 = _mm256_xor_si256(key[27],plaintext[38]);
  des_single__10_sbox_in__6__6 = _mm256_xor_si256(key[5],plaintext[30]);
  sbox__6(des_single__10_sbox_in__6__1,des_single__10_sbox_in__6__2,des_single__10_sbox_in__6__3,des_single__10_sbox_in__6__4,des_single__10_sbox_in__6__5,des_single__10_sbox_in__6__6,&des_single__10_sbox_in__6__1,&des_single__10_sbox_in__6__2,&des_single__10_sbox_in__6__3,&des_single__10_sbox_in__6__4);
  plaintext[7] = _mm256_xor_si256(des_single__10_sbox_in__6__1,plaintext[7]);
  plaintext[35] = _mm256_xor_si256(des_single__10_sbox_in__6__2,plaintext[35]);
  plaintext[21] = _mm256_xor_si256(des_single__10_sbox_in__6__3,plaintext[21]);
  plaintext[9] = _mm256_xor_si256(des_single__10_sbox_in__6__4,plaintext[9]);
  des_single__10_sbox_in__7__1 = _mm256_xor_si256(key[61],plaintext[38]);
  des_single__10_sbox_in__7__2 = _mm256_xor_si256(key[30],plaintext[30]);
  des_single__10_sbox_in__7__3 = _mm256_xor_si256(key[29],plaintext[22]);
  des_single__10_sbox_in__7__4 = _mm256_xor_si256(key[11],plaintext[14]);
  des_single__10_sbox_in__7__5 = _mm256_xor_si256(key[36],plaintext[6]);
  des_single__10_sbox_in__7__6 = _mm256_xor_si256(key[12],plaintext[56]);
  sbox__7(des_single__10_sbox_in__7__1,des_single__10_sbox_in__7__2,des_single__10_sbox_in__7__3,des_single__10_sbox_in__7__4,des_single__10_sbox_in__7__5,des_single__10_sbox_in__7__6,&des_single__10_sbox_in__7__1,&des_single__10_sbox_in__7__2,&des_single__10_sbox_in__7__3,&des_single__10_sbox_in__7__4);
  plaintext[25] = _mm256_xor_si256(des_single__10_sbox_in__7__1,plaintext[25]);
  plaintext[47] = _mm256_xor_si256(des_single__10_sbox_in__7__2,plaintext[47]);
  plaintext[11] = _mm256_xor_si256(des_single__10_sbox_in__7__3,plaintext[11]);
  plaintext[29] = _mm256_xor_si256(des_single__10_sbox_in__7__4,plaintext[29]);
  des_single__11_sbox_in__0__1 = _mm256_xor_si256(key[8],plaintext[7]);
  des_single__11_sbox_in__0__2 = _mm256_xor_si256(key[49],plaintext[57]);
  des_single__11_sbox_in__0__3 = _mm256_xor_si256(key[32],plaintext[49]);
  des_single__11_sbox_in__0__4 = _mm256_xor_si256(key[58],plaintext[41]);
  des_single__11_sbox_in__0__5 = _mm256_xor_si256(key[18],plaintext[33]);
  des_single__11_sbox_in__0__6 = _mm256_xor_si256(key[51],plaintext[25]);
  sbox__0(des_single__11_sbox_in__0__1,des_single__11_sbox_in__0__2,des_single__11_sbox_in__0__3,des_single__11_sbox_in__0__4,des_single__11_sbox_in__0__5,des_single__11_sbox_in__0__6,&des_single__11_sbox_in__0__1,&des_single__11_sbox_in__0__2,&des_single__11_sbox_in__0__3,&des_single__11_sbox_in__0__4);
  plaintext[58] = _mm256_xor_si256(des_single__11_sbox_in__0__1,plaintext[58]);
  plaintext[60] = _mm256_xor_si256(des_single__11_sbox_in__0__2,plaintext[60]);
  plaintext[12] = _mm256_xor_si256(des_single__11_sbox_in__0__3,plaintext[12]);
  plaintext[14] = _mm256_xor_si256(des_single__11_sbox_in__0__4,plaintext[14]);
  des_single__11_sbox_in__1__1 = _mm256_xor_si256(key[2],plaintext[33]);
  des_single__11_sbox_in__1__2 = _mm256_xor_si256(key[26],plaintext[25]);
  des_single__11_sbox_in__1__3 = _mm256_xor_si256(key[0],plaintext[17]);
  des_single__11_sbox_in__1__4 = _mm256_xor_si256(key[43],plaintext[9]);
  des_single__11_sbox_in__1__5 = _mm256_xor_si256(key[17],plaintext[1]);
  des_single__11_sbox_in__1__6 = _mm256_xor_si256(key[40],plaintext[59]);
  sbox__1(des_single__11_sbox_in__1__1,des_single__11_sbox_in__1__2,des_single__11_sbox_in__1__3,des_single__11_sbox_in__1__4,des_single__11_sbox_in__1__5,des_single__11_sbox_in__1__6,&des_single__11_sbox_in__1__1,&des_single__11_sbox_in__1__2,&des_single__11_sbox_in__1__3,&des_single__11_sbox_in__1__4);
  plaintext[26] = _mm256_xor_si256(des_single__11_sbox_in__1__1,plaintext[26]);
  plaintext[38] = _mm256_xor_si256(des_single__11_sbox_in__1__2,plaintext[38]);
  plaintext[48] = _mm256_xor_si256(des_single__11_sbox_in__1__3,plaintext[48]);
  plaintext[52] = _mm256_xor_si256(des_single__11_sbox_in__1__4,plaintext[52]);
  des_single__11_sbox_in__2__1 = _mm256_xor_si256(key[1],plaintext[1]);
  des_single__11_sbox_in__2__2 = _mm256_xor_si256(key[33],plaintext[59]);
  des_single__11_sbox_in__2__3 = _mm256_xor_si256(key[24],plaintext[51]);
  des_single__11_sbox_in__2__4 = _mm256_xor_si256(key[59],plaintext[43]);
  des_single__11_sbox_in__2__5 = _mm256_xor_si256(key[42],plaintext[35]);
  des_single__11_sbox_in__2__6 = _mm256_xor_si256(key[56],plaintext[27]);
  sbox__2(des_single__11_sbox_in__2__1,des_single__11_sbox_in__2__2,des_single__11_sbox_in__2__3,des_single__11_sbox_in__2__4,des_single__11_sbox_in__2__5,des_single__11_sbox_in__2__6,&des_single__11_sbox_in__2__1,&des_single__11_sbox_in__2__2,&des_single__11_sbox_in__2__3,&des_single__11_sbox_in__2__4);
  plaintext[4] = _mm256_xor_si256(des_single__11_sbox_in__2__1,plaintext[4]);
  plaintext[2] = _mm256_xor_si256(des_single__11_sbox_in__2__2,plaintext[2]);
  plaintext[22] = _mm256_xor_si256(des_single__11_sbox_in__2__3,plaintext[22]);
  plaintext[16] = _mm256_xor_si256(des_single__11_sbox_in__2__4,plaintext[16]);
  des_single__11_sbox_in__3__1 = _mm256_xor_si256(key[57],plaintext[35]);
  des_single__11_sbox_in__3__2 = _mm256_xor_si256(key[35],plaintext[27]);
  des_single__11_sbox_in__3__3 = _mm256_xor_si256(key[34],plaintext[19]);
  des_single__11_sbox_in__3__4 = _mm256_xor_si256(key[25],plaintext[11]);
  des_single__11_sbox_in__3__5 = _mm256_xor_si256(key[16],plaintext[3]);
  des_single__11_sbox_in__3__6 = _mm256_xor_si256(key[10],plaintext[61]);
  sbox__3(des_single__11_sbox_in__3__1,des_single__11_sbox_in__3__2,des_single__11_sbox_in__3__3,des_single__11_sbox_in__3__4,des_single__11_sbox_in__3__5,des_single__11_sbox_in__3__6,&des_single__11_sbox_in__3__1,&des_single__11_sbox_in__3__2,&des_single__11_sbox_in__3__3,&des_single__11_sbox_in__3__4);
  plaintext[54] = _mm256_xor_si256(des_single__11_sbox_in__3__1,plaintext[54]);
  plaintext[36] = _mm256_xor_si256(des_single__11_sbox_in__3__2,plaintext[36]);
  plaintext[50] = _mm256_xor_si256(des_single__11_sbox_in__3__3,plaintext[50]);
  plaintext[56] = _mm256_xor_si256(des_single__11_sbox_in__3__4,plaintext[56]);
  des_single__11_sbox_in__4__1 = _mm256_xor_si256(key[22],plaintext[3]);
  des_single__11_sbox_in__4__2 = _mm256_xor_si256(key[60],plaintext[61]);
  des_single__11_sbox_in__4__3 = _mm256_xor_si256(key[4],plaintext[53]);
  des_single__11_sbox_in__4__4 = _mm256_xor_si256(key[54],plaintext[45]);
  des_single__11_sbox_in__4__5 = _mm256_xor_si256(key[37],plaintext[37]);
  des_single__11_sbox_in__4__6 = _mm256_xor_si256(key[36],plaintext[29]);
  sbox__4(des_single__11_sbox_in__4__1,des_single__11_sbox_in__4__2,des_single__11_sbox_in__4__3,des_single__11_sbox_in__4__4,des_single__11_sbox_in__4__5,des_single__11_sbox_in__4__6,&des_single__11_sbox_in__4__1,&des_single__11_sbox_in__4__2,&des_single__11_sbox_in__4__3,&des_single__11_sbox_in__4__4);
  plaintext[0] = _mm256_xor_si256(des_single__11_sbox_in__4__1,plaintext[0]);
  plaintext[18] = _mm256_xor_si256(des_single__11_sbox_in__4__2,plaintext[18]);
  plaintext[62] = _mm256_xor_si256(des_single__11_sbox_in__4__3,plaintext[62]);
  plaintext[40] = _mm256_xor_si256(des_single__11_sbox_in__4__4,plaintext[40]);
  des_single__11_sbox_in__5__1 = _mm256_xor_si256(key[12],plaintext[37]);
  des_single__11_sbox_in__5__2 = _mm256_xor_si256(key[30],plaintext[29]);
  des_single__11_sbox_in__5__3 = _mm256_xor_si256(key[5],plaintext[21]);
  des_single__11_sbox_in__5__4 = _mm256_xor_si256(key[53],plaintext[13]);
  des_single__11_sbox_in__5__5 = _mm256_xor_si256(key[19],plaintext[5]);
  des_single__11_sbox_in__5__6 = _mm256_xor_si256(key[29],plaintext[63]);
  sbox__5(des_single__11_sbox_in__5__1,des_single__11_sbox_in__5__2,des_single__11_sbox_in__5__3,des_single__11_sbox_in__5__4,des_single__11_sbox_in__5__5,des_single__11_sbox_in__5__6,&des_single__11_sbox_in__5__1,&des_single__11_sbox_in__5__2,&des_single__11_sbox_in__5__3,&des_single__11_sbox_in__5__4);
  plaintext[32] = _mm256_xor_si256(des_single__11_sbox_in__5__1,plaintext[32]);
  plaintext[30] = _mm256_xor_si256(des_single__11_sbox_in__5__2,plaintext[30]);
  plaintext[42] = _mm256_xor_si256(des_single__11_sbox_in__5__3,plaintext[42]);
  plaintext[44] = _mm256_xor_si256(des_single__11_sbox_in__5__4,plaintext[44]);
  des_single__11_sbox_in__6__1 = _mm256_xor_si256(key[61],plaintext[5]);
  des_single__11_sbox_in__6__2 = _mm256_xor_si256(key[21],plaintext[63]);
  des_single__11_sbox_in__6__3 = _mm256_xor_si256(key[38],plaintext[55]);
  des_single__11_sbox_in__6__4 = _mm256_xor_si256(key[28],plaintext[47]);
  des_single__11_sbox_in__6__5 = _mm256_xor_si256(key[11],plaintext[39]);
  des_single__11_sbox_in__6__6 = _mm256_xor_si256(key[52],plaintext[31]);
  sbox__6(des_single__11_sbox_in__6__1,des_single__11_sbox_in__6__2,des_single__11_sbox_in__6__3,des_single__11_sbox_in__6__4,des_single__11_sbox_in__6__5,des_single__11_sbox_in__6__6,&des_single__11_sbox_in__6__1,&des_single__11_sbox_in__6__2,&des_single__11_sbox_in__6__3,&des_single__11_sbox_in__6__4);
  plaintext[6] = _mm256_xor_si256(des_single__11_sbox_in__6__1,plaintext[6]);
  plaintext[34] = _mm256_xor_si256(des_single__11_sbox_in__6__2,plaintext[34]);
  plaintext[20] = _mm256_xor_si256(des_single__11_sbox_in__6__3,plaintext[20]);
  plaintext[8] = _mm256_xor_si256(des_single__11_sbox_in__6__4,plaintext[8]);
  des_single__11_sbox_in__7__1 = _mm256_xor_si256(key[45],plaintext[39]);
  des_single__11_sbox_in__7__2 = _mm256_xor_si256(key[14],plaintext[31]);
  des_single__11_sbox_in__7__3 = _mm256_xor_si256(key[13],plaintext[23]);
  des_single__11_sbox_in__7__4 = _mm256_xor_si256(key[62],plaintext[15]);
  des_single__11_sbox_in__7__5 = _mm256_xor_si256(key[20],plaintext[7]);
  des_single__11_sbox_in__7__6 = _mm256_xor_si256(key[27],plaintext[57]);
  sbox__7(des_single__11_sbox_in__7__1,des_single__11_sbox_in__7__2,des_single__11_sbox_in__7__3,des_single__11_sbox_in__7__4,des_single__11_sbox_in__7__5,des_single__11_sbox_in__7__6,&des_single__11_sbox_in__7__1,&des_single__11_sbox_in__7__2,&des_single__11_sbox_in__7__3,&des_single__11_sbox_in__7__4);
  plaintext[24] = _mm256_xor_si256(des_single__11_sbox_in__7__1,plaintext[24]);
  plaintext[46] = _mm256_xor_si256(des_single__11_sbox_in__7__2,plaintext[46]);
  plaintext[10] = _mm256_xor_si256(des_single__11_sbox_in__7__3,plaintext[10]);
  plaintext[28] = _mm256_xor_si256(des_single__11_sbox_in__7__4,plaintext[28]);
  des_single__12_sbox_in__0__1 = _mm256_xor_si256(key[57],plaintext[6]);
  des_single__12_sbox_in__0__2 = _mm256_xor_si256(key[33],plaintext[56]);
  des_single__12_sbox_in__0__3 = _mm256_xor_si256(key[16],plaintext[48]);
  des_single__12_sbox_in__0__4 = _mm256_xor_si256(key[42],plaintext[40]);
  des_single__12_sbox_in__0__5 = _mm256_xor_si256(key[2],plaintext[32]);
  des_single__12_sbox_in__0__6 = _mm256_xor_si256(key[35],plaintext[24]);
  sbox__0(des_single__12_sbox_in__0__1,des_single__12_sbox_in__0__2,des_single__12_sbox_in__0__3,des_single__12_sbox_in__0__4,des_single__12_sbox_in__0__5,des_single__12_sbox_in__0__6,&des_single__12_sbox_in__0__1,&des_single__12_sbox_in__0__2,&des_single__12_sbox_in__0__3,&des_single__12_sbox_in__0__4);
  plaintext[59] = _mm256_xor_si256(des_single__12_sbox_in__0__1,plaintext[59]);
  plaintext[61] = _mm256_xor_si256(des_single__12_sbox_in__0__2,plaintext[61]);
  plaintext[13] = _mm256_xor_si256(des_single__12_sbox_in__0__3,plaintext[13]);
  plaintext[15] = _mm256_xor_si256(des_single__12_sbox_in__0__4,plaintext[15]);
  des_single__12_sbox_in__1__1 = _mm256_xor_si256(key[51],plaintext[32]);
  des_single__12_sbox_in__1__2 = _mm256_xor_si256(key[10],plaintext[24]);
  des_single__12_sbox_in__1__3 = _mm256_xor_si256(key[49],plaintext[16]);
  des_single__12_sbox_in__1__4 = _mm256_xor_si256(key[56],plaintext[8]);
  des_single__12_sbox_in__1__5 = _mm256_xor_si256(key[1],plaintext[0]);
  des_single__12_sbox_in__1__6 = _mm256_xor_si256(key[24],plaintext[58]);
  sbox__1(des_single__12_sbox_in__1__1,des_single__12_sbox_in__1__2,des_single__12_sbox_in__1__3,des_single__12_sbox_in__1__4,des_single__12_sbox_in__1__5,des_single__12_sbox_in__1__6,&des_single__12_sbox_in__1__1,&des_single__12_sbox_in__1__2,&des_single__12_sbox_in__1__3,&des_single__12_sbox_in__1__4);
  plaintext[27] = _mm256_xor_si256(des_single__12_sbox_in__1__1,plaintext[27]);
  plaintext[39] = _mm256_xor_si256(des_single__12_sbox_in__1__2,plaintext[39]);
  plaintext[49] = _mm256_xor_si256(des_single__12_sbox_in__1__3,plaintext[49]);
  plaintext[53] = _mm256_xor_si256(des_single__12_sbox_in__1__4,plaintext[53]);
  des_single__12_sbox_in__2__1 = _mm256_xor_si256(key[50],plaintext[0]);
  des_single__12_sbox_in__2__2 = _mm256_xor_si256(key[17],plaintext[58]);
  des_single__12_sbox_in__2__3 = _mm256_xor_si256(key[8],plaintext[50]);
  des_single__12_sbox_in__2__4 = _mm256_xor_si256(key[43],plaintext[42]);
  des_single__12_sbox_in__2__5 = _mm256_xor_si256(key[26],plaintext[34]);
  des_single__12_sbox_in__2__6 = _mm256_xor_si256(key[40],plaintext[26]);
  sbox__2(des_single__12_sbox_in__2__1,des_single__12_sbox_in__2__2,des_single__12_sbox_in__2__3,des_single__12_sbox_in__2__4,des_single__12_sbox_in__2__5,des_single__12_sbox_in__2__6,&des_single__12_sbox_in__2__1,&des_single__12_sbox_in__2__2,&des_single__12_sbox_in__2__3,&des_single__12_sbox_in__2__4);
  plaintext[5] = _mm256_xor_si256(des_single__12_sbox_in__2__1,plaintext[5]);
  plaintext[3] = _mm256_xor_si256(des_single__12_sbox_in__2__2,plaintext[3]);
  plaintext[23] = _mm256_xor_si256(des_single__12_sbox_in__2__3,plaintext[23]);
  plaintext[17] = _mm256_xor_si256(des_single__12_sbox_in__2__4,plaintext[17]);
  des_single__12_sbox_in__3__1 = _mm256_xor_si256(key[41],plaintext[34]);
  des_single__12_sbox_in__3__2 = _mm256_xor_si256(key[48],plaintext[26]);
  des_single__12_sbox_in__3__3 = _mm256_xor_si256(key[18],plaintext[18]);
  des_single__12_sbox_in__3__4 = _mm256_xor_si256(key[9],plaintext[10]);
  des_single__12_sbox_in__3__5 = _mm256_xor_si256(key[0],plaintext[2]);
  des_single__12_sbox_in__3__6 = _mm256_xor_si256(key[59],plaintext[60]);
  sbox__3(des_single__12_sbox_in__3__1,des_single__12_sbox_in__3__2,des_single__12_sbox_in__3__3,des_single__12_sbox_in__3__4,des_single__12_sbox_in__3__5,des_single__12_sbox_in__3__6,&des_single__12_sbox_in__3__1,&des_single__12_sbox_in__3__2,&des_single__12_sbox_in__3__3,&des_single__12_sbox_in__3__4);
  plaintext[55] = _mm256_xor_si256(des_single__12_sbox_in__3__1,plaintext[55]);
  plaintext[37] = _mm256_xor_si256(des_single__12_sbox_in__3__2,plaintext[37]);
  plaintext[51] = _mm256_xor_si256(des_single__12_sbox_in__3__3,plaintext[51]);
  plaintext[57] = _mm256_xor_si256(des_single__12_sbox_in__3__4,plaintext[57]);
  des_single__12_sbox_in__4__1 = _mm256_xor_si256(key[6],plaintext[2]);
  des_single__12_sbox_in__4__2 = _mm256_xor_si256(key[44],plaintext[60]);
  des_single__12_sbox_in__4__3 = _mm256_xor_si256(key[19],plaintext[52]);
  des_single__12_sbox_in__4__4 = _mm256_xor_si256(key[38],plaintext[44]);
  des_single__12_sbox_in__4__5 = _mm256_xor_si256(key[21],plaintext[36]);
  des_single__12_sbox_in__4__6 = _mm256_xor_si256(key[20],plaintext[28]);
  sbox__4(des_single__12_sbox_in__4__1,des_single__12_sbox_in__4__2,des_single__12_sbox_in__4__3,des_single__12_sbox_in__4__4,des_single__12_sbox_in__4__5,des_single__12_sbox_in__4__6,&des_single__12_sbox_in__4__1,&des_single__12_sbox_in__4__2,&des_single__12_sbox_in__4__3,&des_single__12_sbox_in__4__4);
  plaintext[1] = _mm256_xor_si256(des_single__12_sbox_in__4__1,plaintext[1]);
  plaintext[19] = _mm256_xor_si256(des_single__12_sbox_in__4__2,plaintext[19]);
  plaintext[63] = _mm256_xor_si256(des_single__12_sbox_in__4__3,plaintext[63]);
  plaintext[41] = _mm256_xor_si256(des_single__12_sbox_in__4__4,plaintext[41]);
  des_single__12_sbox_in__5__1 = _mm256_xor_si256(key[27],plaintext[36]);
  des_single__12_sbox_in__5__2 = _mm256_xor_si256(key[14],plaintext[28]);
  des_single__12_sbox_in__5__3 = _mm256_xor_si256(key[52],plaintext[20]);
  des_single__12_sbox_in__5__4 = _mm256_xor_si256(key[37],plaintext[12]);
  des_single__12_sbox_in__5__5 = _mm256_xor_si256(key[3],plaintext[4]);
  des_single__12_sbox_in__5__6 = _mm256_xor_si256(key[13],plaintext[62]);
  sbox__5(des_single__12_sbox_in__5__1,des_single__12_sbox_in__5__2,des_single__12_sbox_in__5__3,des_single__12_sbox_in__5__4,des_single__12_sbox_in__5__5,des_single__12_sbox_in__5__6,&des_single__12_sbox_in__5__1,&des_single__12_sbox_in__5__2,&des_single__12_sbox_in__5__3,&des_single__12_sbox_in__5__4);
  plaintext[33] = _mm256_xor_si256(des_single__12_sbox_in__5__1,plaintext[33]);
  plaintext[31] = _mm256_xor_si256(des_single__12_sbox_in__5__2,plaintext[31]);
  plaintext[43] = _mm256_xor_si256(des_single__12_sbox_in__5__3,plaintext[43]);
  plaintext[45] = _mm256_xor_si256(des_single__12_sbox_in__5__4,plaintext[45]);
  des_single__12_sbox_in__6__1 = _mm256_xor_si256(key[45],plaintext[4]);
  des_single__12_sbox_in__6__2 = _mm256_xor_si256(key[5],plaintext[62]);
  des_single__12_sbox_in__6__3 = _mm256_xor_si256(key[22],plaintext[54]);
  des_single__12_sbox_in__6__4 = _mm256_xor_si256(key[12],plaintext[46]);
  des_single__12_sbox_in__6__5 = _mm256_xor_si256(key[62],plaintext[38]);
  des_single__12_sbox_in__6__6 = _mm256_xor_si256(key[36],plaintext[30]);
  sbox__6(des_single__12_sbox_in__6__1,des_single__12_sbox_in__6__2,des_single__12_sbox_in__6__3,des_single__12_sbox_in__6__4,des_single__12_sbox_in__6__5,des_single__12_sbox_in__6__6,&des_single__12_sbox_in__6__1,&des_single__12_sbox_in__6__2,&des_single__12_sbox_in__6__3,&des_single__12_sbox_in__6__4);
  plaintext[7] = _mm256_xor_si256(des_single__12_sbox_in__6__1,plaintext[7]);
  plaintext[35] = _mm256_xor_si256(des_single__12_sbox_in__6__2,plaintext[35]);
  plaintext[21] = _mm256_xor_si256(des_single__12_sbox_in__6__3,plaintext[21]);
  plaintext[9] = _mm256_xor_si256(des_single__12_sbox_in__6__4,plaintext[9]);
  des_single__12_sbox_in__7__1 = _mm256_xor_si256(key[29],plaintext[38]);
  des_single__12_sbox_in__7__2 = _mm256_xor_si256(key[61],plaintext[30]);
  des_single__12_sbox_in__7__3 = _mm256_xor_si256(key[60],plaintext[22]);
  des_single__12_sbox_in__7__4 = _mm256_xor_si256(key[46],plaintext[14]);
  des_single__12_sbox_in__7__5 = _mm256_xor_si256(key[4],plaintext[6]);
  des_single__12_sbox_in__7__6 = _mm256_xor_si256(key[11],plaintext[56]);
  sbox__7(des_single__12_sbox_in__7__1,des_single__12_sbox_in__7__2,des_single__12_sbox_in__7__3,des_single__12_sbox_in__7__4,des_single__12_sbox_in__7__5,des_single__12_sbox_in__7__6,&des_single__12_sbox_in__7__1,&des_single__12_sbox_in__7__2,&des_single__12_sbox_in__7__3,&des_single__12_sbox_in__7__4);
  plaintext[25] = _mm256_xor_si256(des_single__12_sbox_in__7__1,plaintext[25]);
  plaintext[47] = _mm256_xor_si256(des_single__12_sbox_in__7__2,plaintext[47]);
  plaintext[11] = _mm256_xor_si256(des_single__12_sbox_in__7__3,plaintext[11]);
  plaintext[29] = _mm256_xor_si256(des_single__12_sbox_in__7__4,plaintext[29]);
  des_single__13_sbox_in__0__1 = _mm256_xor_si256(key[41],plaintext[7]);
  des_single__13_sbox_in__0__2 = _mm256_xor_si256(key[17],plaintext[57]);
  des_single__13_sbox_in__0__3 = _mm256_xor_si256(key[0],plaintext[49]);
  des_single__13_sbox_in__0__4 = _mm256_xor_si256(key[26],plaintext[41]);
  des_single__13_sbox_in__0__5 = _mm256_xor_si256(key[51],plaintext[33]);
  des_single__13_sbox_in__0__6 = _mm256_xor_si256(key[48],plaintext[25]);
  sbox__0(des_single__13_sbox_in__0__1,des_single__13_sbox_in__0__2,des_single__13_sbox_in__0__3,des_single__13_sbox_in__0__4,des_single__13_sbox_in__0__5,des_single__13_sbox_in__0__6,&des_single__13_sbox_in__0__1,&des_single__13_sbox_in__0__2,&des_single__13_sbox_in__0__3,&des_single__13_sbox_in__0__4);
  plaintext[58] = _mm256_xor_si256(des_single__13_sbox_in__0__1,plaintext[58]);
  plaintext[60] = _mm256_xor_si256(des_single__13_sbox_in__0__2,plaintext[60]);
  plaintext[12] = _mm256_xor_si256(des_single__13_sbox_in__0__3,plaintext[12]);
  plaintext[14] = _mm256_xor_si256(des_single__13_sbox_in__0__4,plaintext[14]);
  des_single__13_sbox_in__1__1 = _mm256_xor_si256(key[35],plaintext[33]);
  des_single__13_sbox_in__1__2 = _mm256_xor_si256(key[59],plaintext[25]);
  des_single__13_sbox_in__1__3 = _mm256_xor_si256(key[33],plaintext[17]);
  des_single__13_sbox_in__1__4 = _mm256_xor_si256(key[40],plaintext[9]);
  des_single__13_sbox_in__1__5 = _mm256_xor_si256(key[50],plaintext[1]);
  des_single__13_sbox_in__1__6 = _mm256_xor_si256(key[8],plaintext[59]);
  sbox__1(des_single__13_sbox_in__1__1,des_single__13_sbox_in__1__2,des_single__13_sbox_in__1__3,des_single__13_sbox_in__1__4,des_single__13_sbox_in__1__5,des_single__13_sbox_in__1__6,&des_single__13_sbox_in__1__1,&des_single__13_sbox_in__1__2,&des_single__13_sbox_in__1__3,&des_single__13_sbox_in__1__4);
  plaintext[26] = _mm256_xor_si256(des_single__13_sbox_in__1__1,plaintext[26]);
  plaintext[38] = _mm256_xor_si256(des_single__13_sbox_in__1__2,plaintext[38]);
  plaintext[48] = _mm256_xor_si256(des_single__13_sbox_in__1__3,plaintext[48]);
  plaintext[52] = _mm256_xor_si256(des_single__13_sbox_in__1__4,plaintext[52]);
  des_single__13_sbox_in__2__1 = _mm256_xor_si256(key[34],plaintext[1]);
  des_single__13_sbox_in__2__2 = _mm256_xor_si256(key[1],plaintext[59]);
  des_single__13_sbox_in__2__3 = _mm256_xor_si256(key[57],plaintext[51]);
  des_single__13_sbox_in__2__4 = _mm256_xor_si256(key[56],plaintext[43]);
  des_single__13_sbox_in__2__5 = _mm256_xor_si256(key[10],plaintext[35]);
  des_single__13_sbox_in__2__6 = _mm256_xor_si256(key[24],plaintext[27]);
  sbox__2(des_single__13_sbox_in__2__1,des_single__13_sbox_in__2__2,des_single__13_sbox_in__2__3,des_single__13_sbox_in__2__4,des_single__13_sbox_in__2__5,des_single__13_sbox_in__2__6,&des_single__13_sbox_in__2__1,&des_single__13_sbox_in__2__2,&des_single__13_sbox_in__2__3,&des_single__13_sbox_in__2__4);
  plaintext[4] = _mm256_xor_si256(des_single__13_sbox_in__2__1,plaintext[4]);
  plaintext[2] = _mm256_xor_si256(des_single__13_sbox_in__2__2,plaintext[2]);
  plaintext[22] = _mm256_xor_si256(des_single__13_sbox_in__2__3,plaintext[22]);
  plaintext[16] = _mm256_xor_si256(des_single__13_sbox_in__2__4,plaintext[16]);
  des_single__13_sbox_in__3__1 = _mm256_xor_si256(key[25],plaintext[35]);
  des_single__13_sbox_in__3__2 = _mm256_xor_si256(key[32],plaintext[27]);
  des_single__13_sbox_in__3__3 = _mm256_xor_si256(key[2],plaintext[19]);
  des_single__13_sbox_in__3__4 = _mm256_xor_si256(key[58],plaintext[11]);
  des_single__13_sbox_in__3__5 = _mm256_xor_si256(key[49],plaintext[3]);
  des_single__13_sbox_in__3__6 = _mm256_xor_si256(key[43],plaintext[61]);
  sbox__3(des_single__13_sbox_in__3__1,des_single__13_sbox_in__3__2,des_single__13_sbox_in__3__3,des_single__13_sbox_in__3__4,des_single__13_sbox_in__3__5,des_single__13_sbox_in__3__6,&des_single__13_sbox_in__3__1,&des_single__13_sbox_in__3__2,&des_single__13_sbox_in__3__3,&des_single__13_sbox_in__3__4);
  plaintext[54] = _mm256_xor_si256(des_single__13_sbox_in__3__1,plaintext[54]);
  plaintext[36] = _mm256_xor_si256(des_single__13_sbox_in__3__2,plaintext[36]);
  plaintext[50] = _mm256_xor_si256(des_single__13_sbox_in__3__3,plaintext[50]);
  plaintext[56] = _mm256_xor_si256(des_single__13_sbox_in__3__4,plaintext[56]);
  des_single__13_sbox_in__4__1 = _mm256_xor_si256(key[53],plaintext[3]);
  des_single__13_sbox_in__4__2 = _mm256_xor_si256(key[28],plaintext[61]);
  des_single__13_sbox_in__4__3 = _mm256_xor_si256(key[3],plaintext[53]);
  des_single__13_sbox_in__4__4 = _mm256_xor_si256(key[22],plaintext[45]);
  des_single__13_sbox_in__4__5 = _mm256_xor_si256(key[5],plaintext[37]);
  des_single__13_sbox_in__4__6 = _mm256_xor_si256(key[4],plaintext[29]);
  sbox__4(des_single__13_sbox_in__4__1,des_single__13_sbox_in__4__2,des_single__13_sbox_in__4__3,des_single__13_sbox_in__4__4,des_single__13_sbox_in__4__5,des_single__13_sbox_in__4__6,&des_single__13_sbox_in__4__1,&des_single__13_sbox_in__4__2,&des_single__13_sbox_in__4__3,&des_single__13_sbox_in__4__4);
  plaintext[0] = _mm256_xor_si256(des_single__13_sbox_in__4__1,plaintext[0]);
  plaintext[18] = _mm256_xor_si256(des_single__13_sbox_in__4__2,plaintext[18]);
  plaintext[62] = _mm256_xor_si256(des_single__13_sbox_in__4__3,plaintext[62]);
  plaintext[40] = _mm256_xor_si256(des_single__13_sbox_in__4__4,plaintext[40]);
  des_single__13_sbox_in__5__1 = _mm256_xor_si256(key[11],plaintext[37]);
  des_single__13_sbox_in__5__2 = _mm256_xor_si256(key[61],plaintext[29]);
  des_single__13_sbox_in__5__3 = _mm256_xor_si256(key[36],plaintext[21]);
  des_single__13_sbox_in__5__4 = _mm256_xor_si256(key[21],plaintext[13]);
  des_single__13_sbox_in__5__5 = _mm256_xor_si256(key[54],plaintext[5]);
  des_single__13_sbox_in__5__6 = _mm256_xor_si256(key[60],plaintext[63]);
  sbox__5(des_single__13_sbox_in__5__1,des_single__13_sbox_in__5__2,des_single__13_sbox_in__5__3,des_single__13_sbox_in__5__4,des_single__13_sbox_in__5__5,des_single__13_sbox_in__5__6,&des_single__13_sbox_in__5__1,&des_single__13_sbox_in__5__2,&des_single__13_sbox_in__5__3,&des_single__13_sbox_in__5__4);
  plaintext[32] = _mm256_xor_si256(des_single__13_sbox_in__5__1,plaintext[32]);
  plaintext[30] = _mm256_xor_si256(des_single__13_sbox_in__5__2,plaintext[30]);
  plaintext[42] = _mm256_xor_si256(des_single__13_sbox_in__5__3,plaintext[42]);
  plaintext[44] = _mm256_xor_si256(des_single__13_sbox_in__5__4,plaintext[44]);
  des_single__13_sbox_in__6__1 = _mm256_xor_si256(key[29],plaintext[5]);
  des_single__13_sbox_in__6__2 = _mm256_xor_si256(key[52],plaintext[63]);
  des_single__13_sbox_in__6__3 = _mm256_xor_si256(key[6],plaintext[55]);
  des_single__13_sbox_in__6__4 = _mm256_xor_si256(key[27],plaintext[47]);
  des_single__13_sbox_in__6__5 = _mm256_xor_si256(key[46],plaintext[39]);
  des_single__13_sbox_in__6__6 = _mm256_xor_si256(key[20],plaintext[31]);
  sbox__6(des_single__13_sbox_in__6__1,des_single__13_sbox_in__6__2,des_single__13_sbox_in__6__3,des_single__13_sbox_in__6__4,des_single__13_sbox_in__6__5,des_single__13_sbox_in__6__6,&des_single__13_sbox_in__6__1,&des_single__13_sbox_in__6__2,&des_single__13_sbox_in__6__3,&des_single__13_sbox_in__6__4);
  plaintext[6] = _mm256_xor_si256(des_single__13_sbox_in__6__1,plaintext[6]);
  plaintext[34] = _mm256_xor_si256(des_single__13_sbox_in__6__2,plaintext[34]);
  plaintext[20] = _mm256_xor_si256(des_single__13_sbox_in__6__3,plaintext[20]);
  plaintext[8] = _mm256_xor_si256(des_single__13_sbox_in__6__4,plaintext[8]);
  des_single__13_sbox_in__7__1 = _mm256_xor_si256(key[13],plaintext[39]);
  des_single__13_sbox_in__7__2 = _mm256_xor_si256(key[45],plaintext[31]);
  des_single__13_sbox_in__7__3 = _mm256_xor_si256(key[44],plaintext[23]);
  des_single__13_sbox_in__7__4 = _mm256_xor_si256(key[30],plaintext[15]);
  des_single__13_sbox_in__7__5 = _mm256_xor_si256(key[19],plaintext[7]);
  des_single__13_sbox_in__7__6 = _mm256_xor_si256(key[62],plaintext[57]);
  sbox__7(des_single__13_sbox_in__7__1,des_single__13_sbox_in__7__2,des_single__13_sbox_in__7__3,des_single__13_sbox_in__7__4,des_single__13_sbox_in__7__5,des_single__13_sbox_in__7__6,&des_single__13_sbox_in__7__1,&des_single__13_sbox_in__7__2,&des_single__13_sbox_in__7__3,&des_single__13_sbox_in__7__4);
  plaintext[24] = _mm256_xor_si256(des_single__13_sbox_in__7__1,plaintext[24]);
  plaintext[46] = _mm256_xor_si256(des_single__13_sbox_in__7__2,plaintext[46]);
  plaintext[10] = _mm256_xor_si256(des_single__13_sbox_in__7__3,plaintext[10]);
  plaintext[28] = _mm256_xor_si256(des_single__13_sbox_in__7__4,plaintext[28]);
  des_single__14_sbox_in__0__1 = _mm256_xor_si256(key[25],plaintext[6]);
  des_single__14_sbox_in__0__2 = _mm256_xor_si256(key[1],plaintext[56]);
  des_single__14_sbox_in__0__3 = _mm256_xor_si256(key[49],plaintext[48]);
  des_single__14_sbox_in__0__4 = _mm256_xor_si256(key[10],plaintext[40]);
  des_single__14_sbox_in__0__5 = _mm256_xor_si256(key[35],plaintext[32]);
  des_single__14_sbox_in__0__6 = _mm256_xor_si256(key[32],plaintext[24]);
  sbox__0(des_single__14_sbox_in__0__1,des_single__14_sbox_in__0__2,des_single__14_sbox_in__0__3,des_single__14_sbox_in__0__4,des_single__14_sbox_in__0__5,des_single__14_sbox_in__0__6,&des_single__14_sbox_in__0__1,&des_single__14_sbox_in__0__2,&des_single__14_sbox_in__0__3,&des_single__14_sbox_in__0__4);
  plaintext[59] = _mm256_xor_si256(des_single__14_sbox_in__0__1,plaintext[59]);
  plaintext[61] = _mm256_xor_si256(des_single__14_sbox_in__0__2,plaintext[61]);
  plaintext[13] = _mm256_xor_si256(des_single__14_sbox_in__0__3,plaintext[13]);
  plaintext[15] = _mm256_xor_si256(des_single__14_sbox_in__0__4,plaintext[15]);
  des_single__14_sbox_in__1__1 = _mm256_xor_si256(key[48],plaintext[32]);
  des_single__14_sbox_in__1__2 = _mm256_xor_si256(key[43],plaintext[24]);
  des_single__14_sbox_in__1__3 = _mm256_xor_si256(key[17],plaintext[16]);
  des_single__14_sbox_in__1__4 = _mm256_xor_si256(key[24],plaintext[8]);
  des_single__14_sbox_in__1__5 = _mm256_xor_si256(key[34],plaintext[0]);
  key[57] = _mm256_xor_si256(key[57],plaintext[58]);
  sbox__1(des_single__14_sbox_in__1__1,des_single__14_sbox_in__1__2,des_single__14_sbox_in__1__3,des_single__14_sbox_in__1__4,des_single__14_sbox_in__1__5,key[57],&key[57],&des_single__14_sbox_in__1__1,&des_single__14_sbox_in__1__2,&des_single__14_sbox_in__1__3);
  key[57] = _mm256_xor_si256(key[57],plaintext[27]);
  plaintext[39] = _mm256_xor_si256(des_single__14_sbox_in__1__1,plaintext[39]);
  plaintext[49] = _mm256_xor_si256(des_single__14_sbox_in__1__2,plaintext[49]);
  plaintext[53] = _mm256_xor_si256(des_single__14_sbox_in__1__3,plaintext[53]);
  key[18] = _mm256_xor_si256(key[18],plaintext[0]);
  key[50] = _mm256_xor_si256(key[50],plaintext[58]);
  des_single__14_sbox_in__2__3 = _mm256_xor_si256(key[41],plaintext[50]);
  des_single__14_sbox_in__2__4 = _mm256_xor_si256(key[40],plaintext[42]);
  key[59] = _mm256_xor_si256(key[59],plaintext[34]);
  des_single__14_sbox_in__2__6 = _mm256_xor_si256(key[8],plaintext[26]);
  sbox__2(key[18],key[50],des_single__14_sbox_in__2__3,des_single__14_sbox_in__2__4,key[59],des_single__14_sbox_in__2__6,&key[18],&key[50],&key[59],&des_single__14_sbox_in__2__3);
  key[18] = _mm256_xor_si256(key[18],plaintext[5]);
  key[50] = _mm256_xor_si256(key[50],plaintext[3]);
  key[59] = _mm256_xor_si256(key[59],plaintext[23]);
  plaintext[17] = _mm256_xor_si256(des_single__14_sbox_in__2__3,plaintext[17]);
  des_single__14_sbox_in__3__1 = _mm256_xor_si256(key[9],plaintext[34]);
  des_single__14_sbox_in__3__2 = _mm256_xor_si256(key[16],plaintext[26]);
  des_single__14_sbox_in__3__3 = _mm256_xor_si256(key[51],plaintext[18]);
  des_single__14_sbox_in__3__4 = _mm256_xor_si256(key[42],plaintext[10]);
  des_single__14_sbox_in__3__5 = _mm256_xor_si256(key[33],plaintext[2]);
  des_single__14_sbox_in__3__6 = _mm256_xor_si256(key[56],plaintext[60]);
  sbox__3(des_single__14_sbox_in__3__1,des_single__14_sbox_in__3__2,des_single__14_sbox_in__3__3,des_single__14_sbox_in__3__4,des_single__14_sbox_in__3__5,des_single__14_sbox_in__3__6,&des_single__14_sbox_in__3__1,&des_single__14_sbox_in__3__2,&des_single__14_sbox_in__3__3,&des_single__14_sbox_in__3__4);
  plaintext[55] = _mm256_xor_si256(des_single__14_sbox_in__3__1,plaintext[55]);
  plaintext[37] = _mm256_xor_si256(des_single__14_sbox_in__3__2,plaintext[37]);
  plaintext[51] = _mm256_xor_si256(des_single__14_sbox_in__3__3,plaintext[51]);
  plaintext[57] = _mm256_xor_si256(des_single__14_sbox_in__3__4,plaintext[57]);
  des_single__14_sbox_in__4__1 = _mm256_xor_si256(key[37],plaintext[2]);
  des_single__14_sbox_in__4__2 = _mm256_xor_si256(key[12],plaintext[60]);
  des_single__14_sbox_in__4__3 = _mm256_xor_si256(key[54],plaintext[52]);
  des_single__14_sbox_in__4__4 = _mm256_xor_si256(key[6],plaintext[44]);
  des_single__14_sbox_in__4__5 = _mm256_xor_si256(key[52],plaintext[36]);
  key[19] = _mm256_xor_si256(key[19],plaintext[28]);
  sbox__4(des_single__14_sbox_in__4__1,des_single__14_sbox_in__4__2,des_single__14_sbox_in__4__3,des_single__14_sbox_in__4__4,des_single__14_sbox_in__4__5,key[19],&key[19],&des_single__14_sbox_in__4__1,&des_single__14_sbox_in__4__2,&des_single__14_sbox_in__4__3);
  key[19] = _mm256_xor_si256(key[19],plaintext[1]);
  plaintext[19] = _mm256_xor_si256(des_single__14_sbox_in__4__1,plaintext[19]);
  plaintext[63] = _mm256_xor_si256(des_single__14_sbox_in__4__2,plaintext[63]);
  plaintext[41] = _mm256_xor_si256(des_single__14_sbox_in__4__3,plaintext[41]);
  des_single__14_sbox_in__5__1 = _mm256_xor_si256(key[62],plaintext[36]);
  des_single__14_sbox_in__5__2 = _mm256_xor_si256(key[45],plaintext[28]);
  des_single__14_sbox_in__5__3 = _mm256_xor_si256(key[20],plaintext[20]);
  des_single__14_sbox_in__5__4 = _mm256_xor_si256(key[5],plaintext[12]);
  des_single__14_sbox_in__5__5 = _mm256_xor_si256(key[38],plaintext[4]);
  des_single__14_sbox_in__5__6 = _mm256_xor_si256(key[44],plaintext[62]);
  sbox__5(des_single__14_sbox_in__5__1,des_single__14_sbox_in__5__2,des_single__14_sbox_in__5__3,des_single__14_sbox_in__5__4,des_single__14_sbox_in__5__5,des_single__14_sbox_in__5__6,&des_single__14_sbox_in__5__1,&des_single__14_sbox_in__5__2,&des_single__14_sbox_in__5__3,&des_single__14_sbox_in__5__4);
  plaintext[33] = _mm256_xor_si256(des_single__14_sbox_in__5__1,plaintext[33]);
  plaintext[31] = _mm256_xor_si256(des_single__14_sbox_in__5__2,plaintext[31]);
  plaintext[43] = _mm256_xor_si256(des_single__14_sbox_in__5__3,plaintext[43]);
  plaintext[45] = _mm256_xor_si256(des_single__14_sbox_in__5__4,plaintext[45]);
  key[13] = _mm256_xor_si256(key[13],plaintext[4]);
  des_single__14_sbox_in__6__2 = _mm256_xor_si256(key[36],plaintext[62]);
  key[53] = _mm256_xor_si256(key[53],plaintext[54]);
  des_single__14_sbox_in__6__4 = _mm256_xor_si256(key[11],plaintext[46]);
  des_single__14_sbox_in__6__5 = _mm256_xor_si256(key[30],plaintext[38]);
  des_single__14_sbox_in__6__6 = _mm256_xor_si256(key[4],plaintext[30]);
  sbox__6(key[13],des_single__14_sbox_in__6__2,key[53],des_single__14_sbox_in__6__4,des_single__14_sbox_in__6__5,des_single__14_sbox_in__6__6,&key[13],&key[53],&des_single__14_sbox_in__6__2,&des_single__14_sbox_in__6__4);
  key[13] = _mm256_xor_si256(key[13],plaintext[7]);
  key[53] = _mm256_xor_si256(key[53],plaintext[35]);
  plaintext[21] = _mm256_xor_si256(des_single__14_sbox_in__6__2,plaintext[21]);
  plaintext[9] = _mm256_xor_si256(des_single__14_sbox_in__6__4,plaintext[9]);
  des_single__14_sbox_in__7__1 = _mm256_xor_si256(key[60],plaintext[38]);
  des_single__14_sbox_in__7__2 = _mm256_xor_si256(key[29],plaintext[30]);
  des_single__14_sbox_in__7__3 = _mm256_xor_si256(key[28],plaintext[22]);
  key[14] = _mm256_xor_si256(key[14],plaintext[14]);
  des_single__14_sbox_in__7__5 = _mm256_xor_si256(key[3],plaintext[6]);
  des_single__14_sbox_in__7__6 = _mm256_xor_si256(key[46],plaintext[56]);
  sbox__7(des_single__14_sbox_in__7__1,des_single__14_sbox_in__7__2,des_single__14_sbox_in__7__3,key[14],des_single__14_sbox_in__7__5,des_single__14_sbox_in__7__6,&key[14],&des_single__14_sbox_in__7__1,&des_single__14_sbox_in__7__2,&des_single__14_sbox_in__7__3);
  key[14] = _mm256_xor_si256(key[14],plaintext[25]);
  plaintext[47] = _mm256_xor_si256(des_single__14_sbox_in__7__1,plaintext[47]);
  plaintext[11] = _mm256_xor_si256(des_single__14_sbox_in__7__2,plaintext[11]);
  plaintext[29] = _mm256_xor_si256(des_single__14_sbox_in__7__3,plaintext[29]);
  key[17] = _mm256_xor_si256(key[17],key[13]);
  key[58] = _mm256_xor_si256(key[58],plaintext[57]);
  key[41] = _mm256_xor_si256(key[41],plaintext[49]);
  key[2] = _mm256_xor_si256(key[2],plaintext[41]);
  key[56] = _mm256_xor_si256(key[56],plaintext[33]);
  key[24] = _mm256_xor_si256(key[24],key[14]);
  sbox__0(key[17],key[58],key[41],key[2],key[56],key[24],&key[17],&key[58],&key[41],&key[2]);
  key[17] = _mm256_xor_si256(key[17],plaintext[58]);
  key[58] = _mm256_xor_si256(key[58],plaintext[60]);
  key[41] = _mm256_xor_si256(key[41],plaintext[12]);
  key[2] = _mm256_xor_si256(key[2],plaintext[14]);
  key[40] = _mm256_xor_si256(key[40],plaintext[33]);
  key[35] = _mm256_xor_si256(key[35],key[14]);
  key[9] = _mm256_xor_si256(key[9],plaintext[17]);
  key[16] = _mm256_xor_si256(key[16],plaintext[9]);
  key[26] = _mm256_xor_si256(key[26],key[19]);
  key[49] = _mm256_xor_si256(key[49],plaintext[59]);
  sbox__1(key[40],key[35],key[9],key[16],key[26],key[49],&key[40],&key[35],&key[9],&key[16]);
  key[40] = _mm256_xor_si256(key[40],plaintext[26]);
  key[35] = _mm256_xor_si256(key[35],plaintext[38]);
  key[9] = _mm256_xor_si256(key[9],plaintext[48]);
  key[16] = _mm256_xor_si256(key[16],plaintext[52]);
  key[10] = _mm256_xor_si256(key[10],key[19]);
  key[42] = _mm256_xor_si256(key[42],plaintext[59]);
  key[33] = _mm256_xor_si256(key[33],plaintext[51]);
  key[32] = _mm256_xor_si256(key[32],plaintext[43]);
  key[51] = _mm256_xor_si256(key[51],key[53]);
  key[0] = _mm256_xor_si256(key[0],key[57]);
  sbox__2(key[10],key[42],key[33],key[32],key[51],key[0],&key[10],&key[42],&key[33],&key[32]);
  key[10] = _mm256_xor_si256(key[10],plaintext[4]);
  key[42] = _mm256_xor_si256(key[42],plaintext[2]);
  key[33] = _mm256_xor_si256(key[33],plaintext[22]);
  key[32] = _mm256_xor_si256(key[32],plaintext[16]);
  key[1] = _mm256_xor_si256(key[1],key[53]);
  key[8] = _mm256_xor_si256(key[8],key[57]);
  key[43] = _mm256_xor_si256(key[43],plaintext[19]);
  key[34] = _mm256_xor_si256(key[34],plaintext[11]);
  key[25] = _mm256_xor_si256(key[25],key[50]);
  key[48] = _mm256_xor_si256(key[48],plaintext[61]);
  sbox__3(key[1],key[8],key[43],key[34],key[25],key[48],&key[1],&key[8],&key[43],&key[34]);
  key[1] = _mm256_xor_si256(key[1],plaintext[54]);
  key[8] = _mm256_xor_si256(key[8],plaintext[36]);
  key[43] = _mm256_xor_si256(key[43],plaintext[50]);
  key[34] = _mm256_xor_si256(key[34],plaintext[56]);
  key[29] = _mm256_xor_si256(key[29],key[50]);
  key[4] = _mm256_xor_si256(key[4],plaintext[61]);
  key[46] = _mm256_xor_si256(key[46],plaintext[53]);
  key[61] = _mm256_xor_si256(key[61],plaintext[45]);
  key[44] = _mm256_xor_si256(key[44],plaintext[37]);
  key[11] = _mm256_xor_si256(key[11],plaintext[29]);
  sbox__4(key[29],key[4],key[46],key[61],key[44],key[11],&key[29],&key[4],&key[46],&key[61]);
  key[29] = _mm256_xor_si256(key[29],plaintext[0]);
  key[4] = _mm256_xor_si256(key[4],plaintext[18]);
  key[46] = _mm256_xor_si256(key[46],plaintext[62]);
  key[61] = _mm256_xor_si256(key[61],plaintext[40]);
  key[54] = _mm256_xor_si256(key[54],plaintext[37]);
  key[37] = _mm256_xor_si256(key[37],plaintext[29]);
  key[12] = _mm256_xor_si256(key[12],plaintext[21]);
  key[60] = _mm256_xor_si256(key[60],plaintext[13]);
  key[30] = _mm256_xor_si256(key[30],key[18]);
  key[36] = _mm256_xor_si256(key[36],plaintext[63]);
  sbox__5(key[54],key[37],key[12],key[60],key[30],key[36],&key[54],&key[37],&key[12],&key[60]);
  key[54] = _mm256_xor_si256(key[54],plaintext[32]);
  key[37] = _mm256_xor_si256(key[37],plaintext[30]);
  key[12] = _mm256_xor_si256(key[12],plaintext[42]);
  key[60] = _mm256_xor_si256(key[60],plaintext[44]);
  key[5] = _mm256_xor_si256(key[5],key[18]);
  key[28] = _mm256_xor_si256(key[28],plaintext[63]);
  key[45] = _mm256_xor_si256(key[45],plaintext[55]);
  key[3] = _mm256_xor_si256(key[3],plaintext[47]);
  key[22] = _mm256_xor_si256(key[22],plaintext[39]);
  key[27] = _mm256_xor_si256(key[27],plaintext[31]);
  sbox__6(key[5],key[28],key[45],key[3],key[22],key[27],&key[5],&key[28],&key[45],&key[3]);
  key[5] = _mm256_xor_si256(key[5],plaintext[6]);
  key[28] = _mm256_xor_si256(key[28],plaintext[34]);
  key[45] = _mm256_xor_si256(key[45],plaintext[20]);
  key[3] = _mm256_xor_si256(key[3],plaintext[8]);
  key[52] = _mm256_xor_si256(key[52],plaintext[39]);
  key[21] = _mm256_xor_si256(key[21],plaintext[31]);
  key[20] = _mm256_xor_si256(key[20],key[59]);
  key[6] = _mm256_xor_si256(key[6],plaintext[15]);
  key[62] = _mm256_xor_si256(key[62],key[13]);
  key[38] = _mm256_xor_si256(key[38],plaintext[57]);
  sbox__7(key[52],key[21],key[20],key[6],key[62],key[38],&key[52],&key[21],&key[20],&key[6]);
  key[52] = _mm256_xor_si256(key[52],plaintext[24]);
  key[21] = _mm256_xor_si256(key[21],plaintext[46]);
  key[20] = _mm256_xor_si256(key[20],plaintext[10]);
  key[6] = _mm256_xor_si256(key[6],plaintext[28]);
  ciphered[0] = key[19];
  ciphered[1] = key[29];
  ciphered[2] = key[50];
  ciphered[3] = key[42];
  ciphered[4] = key[18];
  ciphered[5] = key[10];
  ciphered[6] = key[13];
  ciphered[7] = key[5];
  ciphered[8] = plaintext[9];
  ciphered[9] = key[3];
  ciphered[10] = plaintext[11];
  ciphered[11] = key[20];
  ciphered[12] = plaintext[13];
  ciphered[13] = key[41];
  ciphered[14] = plaintext[15];
  ciphered[15] = key[2];
  ciphered[16] = plaintext[17];
  ciphered[17] = key[32];
  ciphered[18] = plaintext[19];
  ciphered[19] = key[4];
  ciphered[20] = plaintext[21];
  ciphered[21] = key[45];
  ciphered[22] = key[59];
  ciphered[23] = key[33];
  ciphered[24] = key[14];
  ciphered[25] = key[52];
  ciphered[26] = key[57];
  ciphered[27] = key[40];
  ciphered[28] = plaintext[29];
  ciphered[29] = key[6];
  ciphered[30] = plaintext[31];
  ciphered[31] = key[37];
  ciphered[32] = plaintext[33];
  ciphered[33] = key[54];
  ciphered[34] = key[53];
  ciphered[35] = key[28];
  ciphered[36] = plaintext[37];
  ciphered[37] = key[8];
  ciphered[38] = plaintext[39];
  ciphered[39] = key[35];
  ciphered[40] = plaintext[41];
  ciphered[41] = key[61];
  ciphered[42] = plaintext[43];
  ciphered[43] = key[12];
  ciphered[44] = plaintext[45];
  ciphered[45] = key[60];
  ciphered[46] = plaintext[47];
  ciphered[47] = key[21];
  ciphered[48] = plaintext[49];
  ciphered[49] = key[9];
  ciphered[50] = plaintext[51];
  ciphered[51] = key[43];
  ciphered[52] = plaintext[53];
  ciphered[53] = key[16];
  ciphered[54] = plaintext[55];
  ciphered[55] = key[1];
  ciphered[56] = plaintext[57];
  ciphered[57] = key[34];
  ciphered[58] = plaintext[59];
  ciphered[59] = key[17];
  ciphered[60] = plaintext[61];
  ciphered[61] = key[58];
  ciphered[62] = plaintext[63];
  ciphered[63] = key[46];
}


